/*!\func * add state with name * \param - name - name of new state * \return id of new state (or -1) */ qint32 Data::addState(const QString&name) { static qint32 newId = 0; states.insert(newId, State(this, newId, getUniqueStateName(newId, name))); emit sAddState(newId); return newId++; }
void PATransitionCreator::setInfo(bool isCreateMode, const std::string& stateName) { if (isCreateMode) { inputStateName->value(getUniqueStateName("state").c_str()); inputStateName->activate(); buttonCreateState->label(strdup("Create State")); } else { inputStateName->value(stateName.c_str()); inputStateName->deactivate(); buttonCreateState->label(strdup("Save Changes")); } loadMotions(); if (!isCreateMode) { SmartBody::SBAnimationBlendManager* stateManager = SmartBody::SBScene::getScene()->getBlendManager(); SmartBody::SBAnimationBlend* state = stateManager->getBlend(stateName); if (!state) { fl_alert("State %s does not exist.", stateName.c_str()); cancelState(this, NULL); return; } std::vector<SmartBody::SBMotion*>& motions = state->motions; for (std::vector<SmartBody::SBMotion*>::iterator iter = motions.begin(); iter != motions.end(); iter++) { stateAnimationList->add((*iter)->getName().c_str()); } SmartBody::SBAnimationBlend0D* state0d = dynamic_cast<SmartBody::SBAnimationBlend0D*>(state); if (state0d) choiceStateType->value(0); SmartBody::SBAnimationBlend1D* state1d = dynamic_cast<SmartBody::SBAnimationBlend1D*>(state); if (state1d) choiceStateType->value(1); SmartBody::SBAnimationBlend2D* state2d = dynamic_cast<SmartBody::SBAnimationBlend2D*>(state); if (state2d) choiceStateType->value(2); SmartBody::SBAnimationBlend3D* state3d = dynamic_cast<SmartBody::SBAnimationBlend3D*>(state); if (state3d) choiceStateType->value(3); } }