void ClustMod::Move( TimeValue t, Matrix3& partm, Matrix3& tmAxis, Point3& val, BOOL localOrigin) { #ifdef DESIGN_VER t=0; #endif if (tmControl==NULL) { ReplaceReference(0,NewDefaultMatrix3Controller()); NotifyDependents(FOREVER,0,REFMSG_CONTROLREF_CHANGE); } if (ip && ip->GetSubObjectLevel()==1) { SetXFormPacket pckt(val,partm,tmAxis); tmControl->SetValue(t,&pckt,TRUE,CTRL_RELATIVE); } else { if (posControl==NULL) { ReplaceReference(1,NewDefaultPositionController()); NotifyDependents(FOREVER,0,REFMSG_CONTROLREF_CHANGE); } Matrix3 ptm = partm; Interval valid; if (tmControl) tmControl->GetValue(t,&ptm,valid,CTRL_RELATIVE); posControl->SetValue(t,-VectorTransform(tmAxis*Inverse(ptm),val),TRUE,CTRL_RELATIVE); SetXFormPacket pckt(val,partm,tmAxis); tmControl->SetValue(t,&pckt,TRUE,CTRL_RELATIVE); } }
SymmetryMod::SymmetryMod() { mp_pblock = NULL; mp_mirror = NULL; mUseRampageWeldMath = false; ReplaceReference ( kSYM_MIRROR_REF, NewDefaultMatrix3Controller()); symDesc.MakeAutoParamBlocks(this); }
Control* BaseLimitCtrl::GetDefaultControlForDataType() { switch(SuperClassID()) { case CTRL_FLOAT_CLASS_ID: case CTRL_SHORT_CLASS_ID: case CTRL_INTEGER_CLASS_ID: return NewDefaultFloatController(); case CTRL_POINT3_CLASS_ID: return NewDefaultPoint3Controller(); case CTRL_POSITION_CLASS_ID: return NewDefaultPositionController(); case CTRL_ROTATION_CLASS_ID: return NewDefaultRotationController(); case CTRL_SCALE_CLASS_ID: return NewDefaultScaleController(); case CTRL_MATRIX3_CLASS_ID: return NewDefaultMatrix3Controller(); case CTRL_MASTERPOINT_CLASS_ID: return NewDefaultMasterPointController(); case CTRL_POINT4_CLASS_ID: return NewDefaultPoint4Controller(); case CTRL_COLOR24_CLASS_ID: return NewDefaultColorController(); case CTRL_FRGBA_CLASS_ID: return NewDefaultFRGBAController(); case CTRL_MORPH_CLASS_ID: default: return NULL; } }
MirrorMod::MirrorMod() { tmControl = NULL; pblock = NULL; MakeRefByID( FOREVER, PBLOCK_REF, CreateParameterBlock( descVer1, PBLOCK_LENGTH, CURRENT_VERSION)); MakeRefByID(FOREVER,TM_REF,NewDefaultMatrix3Controller()); splineMethod = SPLINE_NOREVERSE; }