Esempio n. 1
0
// REMOVEBIPED
void RemoveBiped(INode *bipRoot, Interface *theInterface)
{
    SuspendAnimate();   
    AnimateOn();
    
    // remember Max's default controllers (for the user)
    ClassDesc* defaultRotCtrl=GetDefaultController(CTRL_ROTATION_CLASS_ID);
    ClassDesc* defaultPosCtrl=GetDefaultController(CTRL_POSITION_CLASS_ID);
    ClassDesc* defaultScaleCtrl=GetDefaultController(CTRL_SCALE_CLASS_ID);
    
    // change default controllers to linear to create linear controllers
    // since we have no tan info
    DllDir* dllDir=&theInterface->GetDllDir();
    ClassDirectory* classDir=&dllDir->ClassDir();

    ClassDesc* rotCtrl = classDir->FindClass( SClass_ID(CTRL_ROTATION_CLASS_ID),
                                Class_ID(TCBINTERP_ROTATION_CLASS_ID,0));  // was Class_ID(LININTERP_ROTATION_CLASS_ID,0));

    ClassDesc* posCtrl = classDir->FindClass( SClass_ID(CTRL_POSITION_CLASS_ID),
                                    Class_ID(LININTERP_POSITION_CLASS_ID, 0));

    ClassDesc* scaleCtrl = classDir->FindClass( SClass_ID(CTRL_SCALE_CLASS_ID),
                                            Class_ID(LININTERP_SCALE_CLASS_ID, 0));

    SetDefaultController(CTRL_ROTATION_CLASS_ID, rotCtrl);
    SetDefaultController(CTRL_POSITION_CLASS_ID, posCtrl);
    SetDefaultController(CTRL_SCALE_CLASS_ID, scaleCtrl);

    ProcessNodeRecurse(bipRoot, nil, theInterface);

    //deinit
    ResumeAnimate();
    
    // remember Max's default controllers (for the user)
    SetDefaultController(CTRL_ROTATION_CLASS_ID, defaultRotCtrl);
    SetDefaultController(CTRL_POSITION_CLASS_ID, defaultPosCtrl);
    SetDefaultController(CTRL_SCALE_CLASS_ID, defaultScaleCtrl);
}
static SClass_ID GetNodeType(INode *node)
	{
	TimeValue t = GetCOREInterface()->GetTime();
	ObjectState os = node->EvalWorldState( t,  FALSE);
	if (os.obj) {
		SClass_ID id  = os.obj->SuperClassID();
//		if (node->IsTarget()) {
		if (node->IsTarget() && 
			node->GetLookatNode() && 
			node->GetLookatNode()->Selected()) {
			
			INode* depNode = node->GetLookatNode();
			if (depNode) {
				ObjectState osc = depNode->EvalWorldState(t,FALSE);
				return osc.obj->SuperClassID();		
				}
			else return SClass_ID(0);
			}
		else  
			return id;
		}
	else 
		return SClass_ID(0);
	}
Esempio n. 3
0
 SClass_ID      SuperClassID() {return SClass_ID(UTILITY_CLASS_ID);}
Esempio n. 4
0
	SClass_ID		SuperClassID() { return SClass_ID(SOUNDOBJ_CLASS_ID); }