Initial commit
This commit is contained in:
81
Torque/SDK/lib/maxsdk40/ISpringCtrl.h
Normal file
81
Torque/SDK/lib/maxsdk40/ISpringCtrl.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/**********************************************************************
|
||||
*<
|
||||
FILE: jiggleAPI.h
|
||||
|
||||
DESCRIPTION: Public header file for Spring controller
|
||||
|
||||
CREATED BY: Adam Felt
|
||||
|
||||
HISTORY:
|
||||
|
||||
*> Copyright (c) 1999-2000, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
|
||||
#ifndef IJIGGLE
|
||||
#define IJIGGLE
|
||||
|
||||
#define JIGGLEPOS 0x79697d2a
|
||||
#define JIGGLEP3 0x13892172
|
||||
|
||||
#define JIGGLE_POS_CLASS_ID Class_ID(JIGGLEPOS, 0xf2b8a1c8)
|
||||
#define JIGGLE_P3_CLASS_ID Class_ID(JIGGLEP3, 0x68976279)
|
||||
|
||||
#define JIGGLE_CONTROL_REF 0
|
||||
#define JIGGLE_PBLOCK_REF1 1
|
||||
#define JIGGLE_PBLOCK_REF2 2
|
||||
|
||||
//parameter defaults
|
||||
#define JIGGLE_DEFAULT_TENSION 2.0f
|
||||
#define JIGGLE_DEFAULT_DAMPENING 0.5f
|
||||
#define JIGGLE_DEFAULT_MASS 300.0f
|
||||
#define JIGGLE_DEFAULT_DRAG 1.0f
|
||||
|
||||
#define SET_PARAMS_RELATIVE 0
|
||||
#define SET_PARAMS_ABSOLUTE 1
|
||||
|
||||
|
||||
class IJiggle : public FPMixinInterface
|
||||
{
|
||||
public:
|
||||
enum { get_mass, set_mass, get_drag, set_drag, get_tension, set_tension, get_dampening, set_dampening,
|
||||
add_spring, get_spring_count, remove_spring_by_index, remove_spring, get_spring_system, };
|
||||
|
||||
BEGIN_FUNCTION_MAP
|
||||
FN_0 (get_mass, TYPE_FLOAT, GetMass);
|
||||
VFN_1 (set_mass, SetMass, TYPE_FLOAT);
|
||||
FN_0 (get_drag, TYPE_FLOAT, GetDrag);
|
||||
VFN_1 (set_drag, SetDrag, TYPE_FLOAT);
|
||||
FN_1 (get_tension, TYPE_FLOAT, GetTension, TYPE_INDEX);
|
||||
VFN_2 (set_tension, SetTension, TYPE_INDEX, TYPE_FLOAT);
|
||||
FN_1 (get_dampening, TYPE_FLOAT, GetDampening, TYPE_INDEX);
|
||||
VFN_2 (set_dampening, SetDampening, TYPE_INDEX, TYPE_FLOAT);
|
||||
|
||||
FN_1 (add_spring, TYPE_BOOL, AddSpring, TYPE_INODE);
|
||||
FN_0 (get_spring_count, TYPE_INT, GetSpringCount);
|
||||
VFN_1 (remove_spring_by_index, RemoveSpring, TYPE_INDEX);
|
||||
VFN_1 (remove_spring, RemoveSpring, TYPE_INODE);
|
||||
//FN_0 (get_spring_system, TYPE_INTERFACE, GetSpringSystem);
|
||||
END_FUNCTION_MAP
|
||||
|
||||
FPInterfaceDesc* GetDesc(); // <-- must implement
|
||||
|
||||
SpringSys* partsys;
|
||||
virtual SpringSys* GetSpringSystem()=0;
|
||||
|
||||
virtual float GetMass()=0;
|
||||
virtual void SetMass(float mass, bool update=true)=0;
|
||||
virtual float GetDrag()=0;
|
||||
virtual void SetDrag(float drag, bool update=true)=0;
|
||||
virtual float GetTension(int index)=0;
|
||||
virtual void SetTension(int index, float tension, int absolute=1, bool update=true)=0;
|
||||
virtual float GetDampening(int index)=0;
|
||||
virtual void SetDampening(int index, float dampening, int absolute=1, bool update=true)=0;
|
||||
|
||||
virtual BOOL AddSpring(INode *node)=0;
|
||||
virtual INT GetSpringCount()=0;
|
||||
virtual void RemoveSpring(int which)=0;
|
||||
virtual void RemoveSpring(INode *node)=0;
|
||||
};
|
||||
|
||||
#endif //IJIGGLE
|
||||
Reference in New Issue
Block a user