void RigidBodyParamDlgProc::Update(TimeValue t) { if (!thishWnd) return; mCbLayer.select(max(0, min(so->GetLayer(t), mCbLayer.count()-1))); mCbMotionSystem.select(max(0, min(so->GetMotionSystem(t), mCbMotionSystem.count()-1))); mCbQualityType.select(max(0, min(so->GetQualityType(t), mCbQualityType.count()-1))); return; }
void NifProps::selectionChanged() { int numSel = mIP->GetSelNodeCount(); if (numSel <= 0) { mNode = NULL; enableGUI(false, false, false); return; } bool singleSel = numSel==1; INode *nodeSel = mIP->GetSelNode(0); bool isColl = npIsCollision(nodeSel); enableGUI(singleSel, singleSel && isColl, true); mNode = singleSel?nodeSel:NULL; if (!singleSel) return; CheckDlgButton(mPanel, IDC_CHK_ISCOLL, isColl); int mtl, lyr, msys, qtype; float mass, lindamp, angdamp, frict, resti, maxlinvel, maxangvel; Vector3 center; // Handle compatibility npGetProp(nodeSel, NP_HVK_MASS_OLD, mass, NP_DEFAULT_HVK_EMPTY); if (mass != NP_DEFAULT_HVK_EMPTY) npGetProp(nodeSel, NP_HVK_MASS, mass, NP_DEFAULT_HVK_MASS); npGetProp(nodeSel, NP_HVK_FRICTION_OLD, frict, NP_DEFAULT_HVK_EMPTY); if (frict != NP_DEFAULT_HVK_EMPTY) npGetProp(nodeSel, NP_HVK_FRICTION, frict, NP_DEFAULT_HVK_FRICTION); npGetProp(nodeSel, NP_HVK_RESTITUTION_OLD, resti, NP_DEFAULT_HVK_EMPTY); if (resti != NP_DEFAULT_HVK_EMPTY) npGetProp(nodeSel, NP_HVK_RESTITUTION, resti, NP_DEFAULT_HVK_RESTITUTION); npGetProp(nodeSel, NP_HVK_MATERIAL, mtl, NP_DEFAULT_HVK_MATERIAL); npGetProp(nodeSel, NP_HVK_LAYER, lyr, NP_DEFAULT_HVK_LAYER); npGetProp(nodeSel, NP_HVK_MOTION_SYSTEM, msys, NP_DEFAULT_HVK_MOTION_SYSTEM); npGetProp(nodeSel, NP_HVK_QUALITY_TYPE, qtype, NP_DEFAULT_HVK_QUALITY_TYPE); npGetProp(nodeSel, NP_HVK_LINEAR_DAMPING, lindamp, NP_DEFAULT_HVK_LINEAR_DAMPING); npGetProp(nodeSel, NP_HVK_ANGULAR_DAMPING, angdamp, NP_DEFAULT_HVK_ANGULAR_DAMPING); npGetProp(nodeSel, NP_HVK_MAX_LINEAR_VELOCITY, maxlinvel, NP_DEFAULT_HVK_FRICTION); npGetProp(nodeSel, NP_HVK_MAX_ANGULAR_VELOCITY, maxangvel, NP_DEFAULT_HVK_MAX_ANGULAR_VELOCITY); npGetProp(nodeSel, NP_HVK_CENTER, center); mCbMaterial.select(max(0, min(mtl, mCbMaterial.count()-1))); mCbLayer.select(max(0, min(lyr, mCbLayer.count()-1))); mCbMotionSystem.select(max(0, min(msys, mCbMotionSystem.count()-1))); mCbQualityType.select(max(0, min(qtype, mCbQualityType.count()-1))); //mSpins[IDC_SP_CENTER_X]->SetValue(center.x, TRUE); //mSpins[IDC_SP_CENTER_Y]->SetValue(center.y, TRUE); //mSpins[IDC_SP_CENTER_Z]->SetValue(center.z, TRUE); mSpins[IDC_SP_MASS]->SetValue(mass, TRUE); mSpins[IDC_SP_LINEAR_DAMPING]->SetValue(lindamp, TRUE); mSpins[IDC_SP_ANGULAR_DAMPING]->SetValue(angdamp, TRUE); mSpins[IDC_SP_FRICTION]->SetValue(frict, TRUE); mSpins[IDC_SP_MAX_LINEAR_VELOCITY]->SetValue(maxlinvel, TRUE); mSpins[IDC_SP_MAX_ANGULAR_VELOCITY]->SetValue(maxangvel, TRUE); float priority; npGetProp(nodeSel, NP_ANM_PRI, priority, NP_DEFAULT_ANM_PRI); mSpins[IDC_SP_ANIM_PRIORITY]->SetValue(priority, TRUE); }