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;
	}
}
void *BaseLimitCtrl::CreateTempValue()
{
	switch(SuperClassID()) {
		case CTRL_FLOAT_CLASS_ID:
		case CTRL_SHORT_CLASS_ID:
		case CTRL_INTEGER_CLASS_ID:
			return new float;
		case CTRL_POINT3_CLASS_ID:
		case CTRL_POSITION_CLASS_ID:
			return new Point3;
		case CTRL_ROTATION_CLASS_ID:
			return new Quat;
		case CTRL_SCALE_CLASS_ID:
			return new ScaleValue;
		default:
			return NULL;
	}
}
void BaseLimitCtrl::DeleteTempValue(void *val)
{
	switch(SuperClassID()) {
		case CTRL_FLOAT_CLASS_ID:
		case CTRL_SHORT_CLASS_ID:
		case CTRL_INTEGER_CLASS_ID:
			delete (float *)val;
			break;
		case CTRL_POINT3_CLASS_ID:
		case CTRL_POSITION_CLASS_ID:
			delete (Point3 *)val;
			break;
		case CTRL_ROTATION_CLASS_ID:
			delete (Quat *)val;
			break;
		case CTRL_SCALE_CLASS_ID:
			delete (ScaleValue *)val;
			break;
	}
}
Modifier* SkeletalExporterBase::findModifier(INode* node, const Class_ID& classID)
{
    auto object = node->GetObjectRef();

    while (object && object->SuperClassID() == GEN_DERIVOB_CLASS_ID)
    {
        auto derivedObject = static_cast<IDerivedObject*>(object);

        // Iterate over all entries of the modifier stack.
        for (auto i = 0; i < derivedObject->NumModifiers(); i++)
        {
            // If this modifier is a physique then return it
            auto modifier = derivedObject->GetModifier(i);
            if (modifier->ClassID() == classID)
                return modifier;
        }

        object = derivedObject->GetObjRef();
    }

    return nullptr;
}
Example #5
0
 // Returns true if the class is a manipulator and it manipulates
 // the given class ID for a base object, modifier or controller.
 // This manipulator helper object manipulates itself
 BOOL CanManipulate(ReferenceTarget* hTarget) {
     return hTarget->ClassID() == ClassID() && hTarget->SuperClassID() == SuperClassID();
 }