bool GameObjectManager::move(GameObject* obj, int to) { int from = indexOf(obj); if (from == -1 || from == to) return false; bool blocked = blockSignals(true); removeAt(from); insert(to, obj); blockSignals(blocked); emit objectMoved(obj, to); return true; }
void testApp::mouseDragged(int x, int y, int button){ if ((game != NULL) && bMouse && !iSurface.bDebug){ ofPoint mouse = ofPoint(x,y); if ( iSurface.getView().isOver(mouse) && !iSurface.getView().bEditMode ){ ofxBlob pretendBlob; pretendBlob.id = blobIDSimulator; ofPoint pos = iSurface.getView().getScreenToSurface(mouse); pretendBlob.pts.clear(); for(int i = 0; i < blobResolution + 1; i++){ ofPoint pt; pt.x = (blobRadio * cos( blobAngle*i) + pos.x)/(float)iSurface.getView().getWidth(); pt.y = (blobRadio * sin( blobAngle*i) + pos.y)/(float)iSurface.getView().getHeight(); pretendBlob.pts.push_back(pt); } pretendBlob.nPts = blobResolution; pretendBlob.nFingers = 0; if ((game->getTrackMode() == TRACK_JUST_OBJECT) || (game->getTrackMode() == TRACK_ACTIVE_OBJECT) || (game->getTrackMode() == TRACK_BOTH)){ pretendBlob.centroid = iSurface.getView().getScreenToSurface(mouse); pretendBlob.centroid.x /= iSurface.getView().getWidth(); pretendBlob.centroid.y /= iSurface.getView().getHeight(); objectMoved(pretendBlob); } if ((game->getTrackMode() == TRACK_JUST_HANDS) || (game->getTrackMode() == TRACK_ACTIVE_HANDS) || (game->getTrackMode() == TRACK_BOTH)){ pretendBlob.palm = iSurface.getView().getScreenToSurface(mouse); pretendBlob.palm.x /= iSurface.getView().getWidth(); pretendBlob.palm.y /= iSurface.getView().getHeight(); pretendBlob.fingers.clear(); pretendBlob.gotFingers = true; handMoved(pretendBlob); } } } }