6 AFX_VRPN_FORCEDEVICESERVER_H__E5B0D6FA_E426_45E5_97C7_B2169BEBF90A__INCLUDED_)
7#define AFX_VRPN_FORCEDEVICESERVER_H__E5B0D6FA_E426_45E5_97C7_B2169BEBF90A__INCLUDED_
18typedef struct _vrpn_DisplayableObject {
73 virtual bool addObject(vrpn_int32 objNum, vrpn_int32 ParentNum = -1) = 0;
77 virtual bool setVertex(vrpn_int32 objNum, vrpn_int32 vertNum,
78 vrpn_float32 x, vrpn_float32 y, vrpn_float32 z) = 0;
81 virtual bool setNormal(vrpn_int32 objNum, vrpn_int32 normNum,
82 vrpn_float32 x, vrpn_float32 y, vrpn_float32 z) = 0;
83 virtual bool setTriangle(vrpn_int32 objNum, vrpn_int32 triNum,
84 vrpn_int32 vert0, vrpn_int32 vert1,
85 vrpn_int32 vert2, vrpn_int32 norm0 = -1,
86 vrpn_int32 norm1 = -1, vrpn_int32 norm2 = -1) = 0;
91 vrpn_float32 kdamp, vrpn_float32 fdyn,
92 vrpn_float32 fstat) = 0;
97 vrpn_float32 homMatrix[16]) = 0;
102 vrpn_float32 angle) = 0;
112 virtual bool moveToParent(vrpn_int32 objNum, vrpn_int32 ParentNum) = 0;
115 vrpn_float32 angle) = 0;
120 vrpn_float32 angle) = 0;
123 vrpn_bool IsTouchable =
true) = 0;
Generic connection class not specific to the transport mechanism.
static int VRPN_CALLBACK handle_updateTrimeshChanges_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setVertex_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setObjectScale_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_addObject_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setHapticOrigin_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setHapticScale_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setTriangle(vrpn_int32 objNum, vrpn_int32 triNum, vrpn_int32 vert0, vrpn_int32 vert1, vrpn_int32 vert2, vrpn_int32 norm0=-1, vrpn_int32 norm1=-1, vrpn_int32 norm2=-1)=0
virtual bool setTrimeshTransform(vrpn_int32 objNum, vrpn_float32 homMatrix[16])=0
virtual bool setVertex(vrpn_int32 objNum, vrpn_int32 vertNum, vrpn_float32 x, vrpn_float32 y, vrpn_float32 z)=0
static int VRPN_CALLBACK handle_transformTrimesh_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setTriangle_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool addObject(vrpn_int32 objNum, vrpn_int32 ParentNum=-1)=0
static int VRPN_CALLBACK handle_moveToParent_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool addObjectExScene(vrpn_int32 objNum)=0
virtual bool setSceneOrigin(vrpn_float32 Pos[3], vrpn_float32 axis[3], vrpn_float32 angle)=0
virtual bool setHapticOrigin(vrpn_float32 Pos[3], vrpn_float32 axis[3], vrpn_float32 angle)=0
virtual bool removeObject(vrpn_int32 objNum)=0
virtual bool moveToParent(vrpn_int32 objNum, vrpn_int32 ParentNum)=0
Functions to organize the scene.
static int VRPN_CALLBACK handle_addObjectExScene_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setSceneOrigin_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_removeObject_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setTrimeshType(vrpn_int32 objNum, vrpn_int32 type)=0
virtual bool clearTrimesh(vrpn_int32 objNum)=0
virtual bool setObjectPosition(vrpn_int32 objNum, vrpn_float32 Pos[3])=0
static int VRPN_CALLBACK handle_setObjectIsTouchable_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setObjectOrientation(vrpn_int32 objNum, vrpn_float32 axis[3], vrpn_float32 angle)=0
static int VRPN_CALLBACK handle_setNormal_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setObjectIsTouchable(vrpn_int32 objNum, vrpn_bool IsTouchable=true)=0
static int VRPN_CALLBACK handle_clearTrimesh_message(void *userdata, vrpn_HANDLERPARAM p)
vrpn_ForceDeviceServer(const char *name, vrpn_Connection *c)
virtual bool setObjectScale(vrpn_int32 objNum, vrpn_float32 Scale[3])=0
virtual bool removeTriangle(vrpn_int32 objNum, vrpn_int32 triNum)=0
static int VRPN_CALLBACK handle_setObjectPosition_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setNormal(vrpn_int32 objNum, vrpn_int32 normNum, vrpn_float32 x, vrpn_float32 y, vrpn_float32 z)=0
vrpn_DISPLAYABLEHASH m_hObjectList
virtual bool updateTrimeshChanges(vrpn_int32 objNum, vrpn_float32 kspring, vrpn_float32 kdamp, vrpn_float32 fdyn, vrpn_float32 fstat)=0
static int VRPN_CALLBACK handle_setTrimeshType_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_setObjectOrientation_message(void *userdata, vrpn_HANDLERPARAM p)
virtual bool setHapticScale(vrpn_float32 Scale)=0
static int VRPN_CALLBACK handle_removeTriangle_message(void *userdata, vrpn_HANDLERPARAM p)
vrpn_ForceDevice(const char *name, vrpn_Connection *c)
Hash class (not thread-safe)
This structure is what is passed to a vrpn_Connection message callback.
vrpn_Hash< unsigned int, void * > vrpn_VoidHash
vrpn_Hash< unsigned int, vrpn_DISPLAYABLEOBJECT * > vrpn_DISPLAYABLEHASH
class VRPN_API vrpn_Connection