22 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
28 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
34 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
40 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
46 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
52 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
58 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
64 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
70 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
76 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
82 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
88 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
94 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
100 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
106 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
112 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
118 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
124 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
130 fprintf(stderr,
"vrpn_Phantom:can't register handler\n");
142 vrpn_int32 objNum, parentNum;
156 fprintf(stderr,
"vrpn_Phantom: error in trimesh::addObject\n");
181 fprintf(stderr,
"vrpn_Phantom: error in trimesh::addObjectExScene\n");
206 if (me->
setVertex(objNum, vertNum, x, y, z)) {
210 fprintf(stderr,
"vrpn_Phantom: error in trimesh::setVertex\n");
236 if (me->
setNormal(objNum, normNum, x, y, z))
239 fprintf(stderr,
"vrpn_Phantom: error in trimesh::setNormal\n");
250 vrpn_int32 triNum, v0, v1, v2, n0, n1, n2;
261 if (me->
setTriangle(objNum, triNum, v0, v1, v2, n0, n1, n2))
264 fprintf(stderr,
"vrpn_Phantom: error in trimesh::setTriangle\n");
290 fprintf(stderr,
"vrpn_Phantom: error in trimesh::removeTriangle\n");
370 float xformMatrix[16];
417 vrpn_float32 axis[3];
440 vrpn_float32 scale[3];
485 vrpn_int32 objNum, parentNum;
508 vrpn_float32 axis[3], angle;
551 vrpn_float32 axis[3], angle;
int register_autodeleted_handler(vrpn_int32 type, vrpn_MESSAGEHANDLER handler, void *userdata, vrpn_int32 sender=vrpn_ANY_SENDER)
Registers a handler with the connection, and remembers to delete at destruction.
vrpn_Connection * d_connection
Connection that this object talks to.
vrpn_int32 d_sender_id
Sender ID registered with the connection.
int send_text_message(const char *msg, struct timeval timestamp, vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL, vrpn_uint32 level=0)
Sends a NULL-terminated text message from the device d_sender_id.
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
virtual ~vrpn_ForceDeviceServer()
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
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)
static vrpn_int32 decode_objectScale(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_float32 Scale[3])
static vrpn_int32 decode_trimeshTransform(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_float32 homMatrix[16])
static vrpn_int32 decode_setHapticOrigin(const char *buffer, vrpn_int32 len, vrpn_float32 Pos[3], vrpn_float32 axis[3], vrpn_float32 *angle)
vrpn_float32 SurfaceKspring
static vrpn_int32 decode_objectPosition(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_float32 Pos[3])
static vrpn_int32 decode_normal(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *vertNum, vrpn_float32 *x, vrpn_float32 *y, vrpn_float32 *z)
vrpn_int32 addObject_message_id
vrpn_int32 setObjectScale_message_id
vrpn_float32 SurfaceKdamping
vrpn_int32 setHapticOrigin_message_id
vrpn_int32 moveToParent_message_id
static vrpn_int32 decode_addObjectExScene(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum)
vrpn_int32 setSceneOrigin_message_id
static vrpn_int32 decode_setSceneOrigin(const char *buffer, vrpn_int32 len, vrpn_float32 Pos[3], vrpn_float32 axis[3], vrpn_float32 *angle)
static vrpn_int32 decode_removeTriangle(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *triNum)
static vrpn_int32 decode_updateTrimeshChanges(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_float32 *kspring, vrpn_float32 *kdamp, vrpn_float32 *fdyn, vrpn_float32 *fstat)
vrpn_int32 setObjectPosition_message_id
vrpn_int32 clearTrimesh_message_id
vrpn_int32 setTriangle_message_id
static vrpn_int32 decode_addObject(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *ParentNum)
static vrpn_int32 decode_setTrimeshType(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *type)
static vrpn_int32 decode_setObjectIsTouchable(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_bool *isTouchable)
vrpn_int32 updateTrimeshChanges_message_id
static vrpn_int32 decode_objectOrientation(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_float32 axis[3], vrpn_float32 *angle)
static vrpn_int32 decode_clearTrimesh(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum)
vrpn_int32 setHapticScale_message_id
static vrpn_int32 decode_triangle(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *triNum, vrpn_int32 *vert0, vrpn_int32 *vert1, vrpn_int32 *vert2, vrpn_int32 *norm0, vrpn_int32 *norm1, vrpn_int32 *norm2)
vrpn_int32 addObjectExScene_message_id
vrpn_int32 transformTrimesh_message_id
vrpn_int32 setObjectOrientation_message_id
vrpn_int32 removeTriangle_message_id
static vrpn_int32 decode_moveToParent(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *parentNum)
vrpn_int32 setNormal_message_id
vrpn_int32 setTrimeshType_message_id
vrpn_float32 SurfaceFdynamic
vrpn_float32 SurfaceFstatic
vrpn_int32 removeObject_message_id
static vrpn_int32 decode_vertex(const char *buffer, const vrpn_int32 len, vrpn_int32 *objNum, vrpn_int32 *vertNum, vrpn_float32 *x, vrpn_float32 *y, vrpn_float32 *z)
vrpn_int32 setVertex_message_id
static vrpn_int32 decode_removeObject(const char *buffer, vrpn_int32 len, vrpn_int32 *objNum)
static vrpn_int32 decode_setHapticScale(const char *buffer, vrpn_int32 len, vrpn_float32 *Scale)
vrpn_int32 setObjectIsTouchable_message_id
This structure is what is passed to a vrpn_Connection message callback.
#define vrpn_gettimeofday