package com.asha.vrlib.plugins; import com.asha.vrlib.model.MDHitEvent; import com.asha.vrlib.model.MDHotspotBuilder; /** * Created by hzqiujiadi on 16/8/10. * hzqiujiadi ashqalcn@gmail.com */ public class MDWidgetPlugin extends MDHotspotPlugin { private static final int STATUS_NORMAL = 0; private static final int STATUS_FOCUSED = 1; // private static final int STATUS_PRESSED = 2; private boolean mChecked; private int[] mStatusList; private int[] mCheckedStatusList; private int mCurrentStatus = STATUS_NORMAL; public MDWidgetPlugin(MDHotspotBuilder builder) { super(builder); this.mStatusList = builder.statusList; this.mCheckedStatusList = builder.checkedStatusList; if (this.mStatusList == null){ mStatusList = new int[]{0, 0, 0}; } } public void setChecked(boolean checked){ this.mChecked = checked; updateStatus(); } public boolean getChecked(){ return mChecked; } @Override public void onEyeHitIn(MDHitEvent hitEvent) { super.onEyeHitIn(hitEvent); mCurrentStatus = STATUS_FOCUSED; updateStatus(); } @Override public void onEyeHitOut(long timestamp) { super.onEyeHitOut(timestamp); mCurrentStatus = STATUS_NORMAL; updateStatus(); } private void updateStatus(){ int[] statusList = mChecked ? mCheckedStatusList : mStatusList; if (statusList == null){ statusList = mStatusList; } if (statusList != null && mCurrentStatus < statusList.length){ useTexture(statusList[mCurrentStatus]); } } }