MeVisLab Toolbox Reference
XVInventorWrapper.h
Go to the documentation of this file.
1/*************************************************************************************
2**
3** Copyright 2007, MeVis Medical Solutions AG
4**
5** The user may use this file in accordance with the license agreement provided with
6** the Software or, alternatively, in accordance with the terms contained in a
7** written agreement between the user and MeVis Medical Solutions AG.
8**
9** For further information use the contact form at https://www.mevislab.de/contact
10**
11**************************************************************************************/
12
13#ifndef XVINVENTOR_WRAPPER_H
14#define XVINVENTOR_WRAPPER_H
15
17
19
20#ifndef WIN32
21#include <ThirdPartyWarningsDisable.h>
22#include <ThirdPartyWarningsRestore.h>
23#include <cstring>
24#endif
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#ifdef __cplusplus
31#ifndef ML_DISABLE_CPP
32#define ML_DISABLE_CPP
33#endif
34#endif
35
36#include <mlDataTypes.h>
37
38#ifdef __cplusplus
39#undef ML_DISABLE_CPP
40#endif
41
43 // this was previously in XVcallbacks.h, but got pretty lonely after a reorganization (usi)
44 typedef void InvSensorCB(void *data,void *sensor);
45
46
53 INVENTORWRAPPER_API int InvLoadLibrary(const char* name);
54
56
57
59
62
64 INVENTORWRAPPER_API const char* InvNodeGetType(void *node);
65
68
71
73 INVENTORWRAPPER_API void InvBaseSetName(void *base, const char* name);
74
78 INVENTORWRAPPER_API size_t InvNodeGetValues(void *node, char* values, size_t size);
80 INVENTORWRAPPER_API void InvNodeSetValues(void *node, const char* values);
81
86
93
98
100 INVENTORWRAPPER_API const char* InvNodeGetName(void *node);
101
103 INVENTORWRAPPER_API void InvNodeSetIndexedFieldValue(void *node, int index, const char* value);
105 INVENTORWRAPPER_API const char* InvNodeGetIndexedFieldName(void *node, int index);
107 INVENTORWRAPPER_API const char* InvNodeGetFieldName(void *node, void* field);
111 INVENTORWRAPPER_API void InvNodeSetFieldValue(void *node, const char* name, const char* value);
113 INVENTORWRAPPER_API size_t InvNodeGetFieldValue(void *node, const char* name, char* value, size_t size);
114
116 INVENTORWRAPPER_API void* InvNodeGetField(void *node, const char* name);
118 INVENTORWRAPPER_API void* InvNodeGetIndexedField(void *node, int index);
119
121
123
125 INVENTORWRAPPER_API void* InvDBCreateGlobalField(const char* name, const char* type);
128
132 INVENTORWRAPPER_API void InvFieldSetValue(void *field, const char* value);
135
137 INVENTORWRAPPER_API size_t InvFieldGetValue(void *field, char* value, size_t size);
147 INVENTORWRAPPER_API const char* InvFieldGetEnumName(void* field, int index, int* value);
154
159
161 INVENTORWRAPPER_API void InvSFStringSetValue(void* field, const char* value);
162
164 INVENTORWRAPPER_API void InvMFieldSetValue(void *field, int index, const char* value);
168 INVENTORWRAPPER_API size_t InvMFieldGetValue(void *field, int index, char* value, size_t size);
171
176
181
186
191
196
201
204
206 INVENTORWRAPPER_API void InvSbVec4fSetValue(void* vecs, int index, const float value[4]);
208 INVENTORWRAPPER_API void InvSbVec4dSetValue(void* vecs, int index, const double value[4]);
209
211 INVENTORWRAPPER_API void InvSbVec3fSetValue(void* vecs, int index, const float value[3]);
213 INVENTORWRAPPER_API void InvSbVec3dSetValue(void* vecs, int index, const double value[3]);
214
216 INVENTORWRAPPER_API void InvSbVec2fSetValue(void* vecs, int index, const float value[2]);
218 INVENTORWRAPPER_API void InvSbVec2dSetValue(void* vecs, int index, const double value[2]);
219
221
223
225 INVENTORWRAPPER_API void* InvEngineGetOutput(void *engine, const char* name);
237
239
244
249
251
253
269
271
275 INVENTORWRAPPER_API void InvGroupInsertChild(void* group, void* child, int index);
277 INVENTORWRAPPER_API void InvGroupReplaceChild(void* group, void* newchild, int index);
287 INVENTORWRAPPER_API void* InvGroupGetChildAtIndex(void* group, int index);
288
290
293
297
299
300
302
313
315
317
319 INVENTORWRAPPER_API void* InvCreateSceneFromFile(const char* filename);
324
335
337
339
341 typedef void (*SensorManagerCB)(void *);
342
357
359
361
368
371 INVENTORWRAPPER_API void InvSFUInt32FieldSetValue(void *field, unsigned int value);
375
376 INVENTORWRAPPER_API void InvSFVec2fGetValue(void *field, float* values);
377 INVENTORWRAPPER_API void InvSFVec3fGetValue(void *field, float* values);
378 INVENTORWRAPPER_API void InvSFVec4fGetValue(void *field, float* values);
379 INVENTORWRAPPER_API void InvSFVec2fSetValue(void *field, const float* values);
380 INVENTORWRAPPER_API void InvSFVec3fSetValue(void *field, const float* values);
381 INVENTORWRAPPER_API void InvSFVec4fSetValue(void *field, const float* values);
382
383 INVENTORWRAPPER_API void InvSFVec2dGetValue(void *field, double* values);
384 INVENTORWRAPPER_API void InvSFVec3dGetValue(void *field, double* values);
385 INVENTORWRAPPER_API void InvSFVec4dGetValue(void *field, double* values);
386 INVENTORWRAPPER_API void InvSFVec2dSetValue(void *field, const double* values);
387 INVENTORWRAPPER_API void InvSFVec3dSetValue(void *field, const double* values);
388 INVENTORWRAPPER_API void InvSFVec4dSetValue(void *field, const double* values);
389
390 INVENTORWRAPPER_API void InvSFColorGetValue(void *field, float* values); // three values
391 INVENTORWRAPPER_API void InvSFRotationGetValue(void *field, float* values); // four values
392 INVENTORWRAPPER_API void InvSFPlaneGetValue(void *field, float* values); // four values
393 INVENTORWRAPPER_API void InvSFColorSetValue(void *field, const float* values); // three values
394 INVENTORWRAPPER_API void InvSFRotationSetValue(void *field, const float* values); // four values
395 INVENTORWRAPPER_API void InvSFPlaneSetValue(void *field, const float* values); // four values
396
397 INVENTORWRAPPER_API void InvSFRotationdGetValue(void *field, double* values); // four values
398 INVENTORWRAPPER_API void InvSFPlanedGetValue(void *field, double* values); // four values
399 INVENTORWRAPPER_API void InvSFRotationdSetValue(void *field, const double* values); // four values
400 INVENTORWRAPPER_API void InvSFPlanedSetValue(void *field, const double* values); // four values
401
403
404
405#ifdef __cplusplus
406}
407#endif
408
409#endif
#define INVENTORWRAPPER_API
Library initialization and export macros for platform independecy of project.
INVENTORWRAPPER_API void InvSFVec3fGetValue(void *field, float *values)
INVENTORWRAPPER_API void * InvNodeGetIndexedField(void *node, int index)
Returns the field at index.
INVENTORWRAPPER_API const char * InvNodeGetName(void *node)
Returns the name of the node.
INVENTORWRAPPER_API void InvMLImageFieldConnectFromML(void *field, void *mlConnector)
Inventor SoSFMLImage access.
INVENTORWRAPPER_API void InvXVImageFieldDisconnectFromML(void *field)
Deprecated method, use the InvMLImageFieldDisconnectFromML.
INVENTORWRAPPER_API void InvMFieldSetNum(void *field, int size)
Sets the number of elements in SoMFField.
INVENTORWRAPPER_API void InvSFPlanedGetValue(void *field, double *values)
INVENTORWRAPPER_API void InvTimerSensorUnschedule(void *timer)
Stops the timer.
INVENTORWRAPPER_API void InvSFVec2dSetValue(void *field, const double *values)
INVENTORWRAPPER_API void InvSFColorSetValue(void *field, const float *values)
INVENTORWRAPPER_API void InvDeleteFieldSensor(void *sensor)
Deletes the field sensor.
INVENTORWRAPPER_API int InvFieldConnectFromEngineOutput(void *field, void *output)
Connects from an engine.
INVENTORWRAPPER_API unsigned long InvSensorManagerGetDelaySensorTimeout()
Returns the timeout in milliseconds that the delay queue should be processed.
INVENTORWRAPPER_API void InvNodeSetOverride(void *node, int flag)
Sets the override flag of a node (0 == false, 1 == true).
INVENTORWRAPPER_API const char * InvEngineGetOutputName(void *engine, void *output)
Returns the name of the output.
INVENTORWRAPPER_API void InvNodeSetFieldValue(void *node, const char *name, const char *value)
Sets the value of given the field.
INVENTORWRAPPER_API void InvGroupRemoveChild(void *group, void *child)
Removes the child node from SoGroup.
void(* SensorManagerCB)(void *)
Inventor SensorManager access.
INVENTORWRAPPER_API void InvTimerSensorSetInterval(void *timer, MLint32 sec, MLint32 usec)
Sets the interval of the sensor.
INVENTORWRAPPER_API int InvLoadLibrary(const char *name)
Loads the given shared library.
INVENTORWRAPPER_API void InvMFVec3fFinishEditing(void *field)
Stops editing SoMFVec3f field.
INVENTORWRAPPER_API double InvSFDoubleFieldGetValue(void *field)
INVENTORWRAPPER_API const char * InvNodeGetIndexedFieldName(void *node, int index)
Returns the name of field at index.
INVENTORWRAPPER_API void InvSFColorGetValue(void *field, float *values)
INVENTORWRAPPER_API float InvSFFloatFieldGetValue(void *field)
INVENTORWRAPPER_API const char * InvNodeGetFieldName(void *node, void *field)
Returns the name of field. Fields do not know their name, so you must pass the node as well.
INVENTORWRAPPER_API void * InvMFVec4dStartEditing(void *field)
Starts editing SoMFVec4d field.
INVENTORWRAPPER_API void InvGroupInsertChild(void *group, void *child, int index)
Inserts a child to a SoGroup derived node.
INVENTORWRAPPER_API void * InvCreateNodeFromName(const char *name)
Inventor SoNode access.
INVENTORWRAPPER_API void InvFieldSensorDetach(void *sensor)
Detaches a field from the sensor.
INVENTORWRAPPER_API void * InvMFVec2fStartEditing(void *field)
Starts editing SoMFVec2f field.
INVENTORWRAPPER_API void InvGroupRemoveChildAtIndex(void *group, int index)
Removes the child at index node from SoGroup.
INVENTORWRAPPER_API size_t InvMFieldGetValue(void *field, int index, char *value, size_t size)
Returns the value of a SoMFField, returns the size needed for the value. If it does not fit,...
INVENTORWRAPPER_API void InvSFVec2fSetValue(void *field, const float *values)
INVENTORWRAPPER_API void * InvCreateSceneFromString(const char *string)
Creates a scene from a string, returns a SoNode.
INVENTORWRAPPER_API void InvSbVec2dSetValue(void *vecs, int index, const double value[2])
Sets the value of a SbVec2d array.
INVENTORWRAPPER_API int InvInitInventor()
Initialize the Open Inventor base library (no GUI).
INVENTORWRAPPER_API void * InvDBGetGlobalField(const char *name)
Returns a global field.
INVENTORWRAPPER_API void InvSFVec3fSetValue(void *field, const float *values)
INVENTORWRAPPER_API int InvSFEnumFieldGetValue(void *field)
Fast field access methods: (be careful to call only with correct types)
INVENTORWRAPPER_API void InvSFPlaneGetValue(void *field, float *values)
INVENTORWRAPPER_API void InvMFieldSetValue(void *field, int index, const char *value)
Sets the value of a SoMFField.
INVENTORWRAPPER_API void InvMFVec4fFinishEditing(void *field)
Stops editing SoMFVec4f field.
INVENTORWRAPPER_API void * InvNodeCopy(void *node)
Copies the given node.
INVENTORWRAPPER_API void InvSFUInt32FieldSetValue(void *field, unsigned int value)
INVENTORWRAPPER_API void * InvFieldSensorGetField(void *sensor)
Returns the attached field.
INVENTORWRAPPER_API void InvSFPlaneSetValue(void *field, const float *values)
INVENTORWRAPPER_API void InvNodeSetValues(void *node, const char *values)
Sets values of a node in Inventor file format.
INVENTORWRAPPER_API void InvSFVec4fSetValue(void *field, const float *values)
INVENTORWRAPPER_API void InvFieldSensorSetPriority(void *sensor, int priority)
Sets the priority of the sensor.
INVENTORWRAPPER_API void InvFieldSensorAttach(void *sensor, void *field)
Attaches the field to the sensor.
INVENTORWRAPPER_API void * InvEngineGetOutput(void *engine, const char *name)
Inventor Engines.
INVENTORWRAPPER_API const char * InvEngineGetIndexedOutputName(void *engine, int index)
Returns the name of output at index.
INVENTORWRAPPER_API void * InvMFVec4fStartEditing(void *field)
Starts editing SoMFVec4f field.
INVENTORWRAPPER_API int InvFieldIsIgnored(void *field)
Checks the ignored state of field.
INVENTORWRAPPER_API void InvNodeSetIndexedFieldValue(void *node, int index, const char *value)
Sets the given value by index of the field.
INVENTORWRAPPER_API void InvNodeRef(void *node)
References the node.
INVENTORWRAPPER_API void * InvNodeFieldGetNodePointer(void *field)
Returns a pointer to the node in a SoNodeField, may be NULL.
INVENTORWRAPPER_API void InvFieldSetValue(void *field, const char *value)
Sets the value of the field.
INVENTORWRAPPER_API int InvMFieldGetNumValues(void *field)
Returns the number of values in a SoMFField.
INVENTORWRAPPER_API void InvDeleteTimerSensor(void *timer)
Deletes a timer sensor.
INVENTORWRAPPER_API void InvSFVec4dSetValue(void *field, const double *values)
INVENTORWRAPPER_API int InvEngineGetNumOutputs(void *engine)
Returns the number of outputs.
INVENTORWRAPPER_API void InvFieldSetIgnored(void *field, int ignore)
Sets the ignored state of field.
void InvSensorCB(void *data, void *sensor)
This file defines a C Wrapper for Open Inventor to be used from MeVisLab.
INVENTORWRAPPER_API const char * InvFieldGetType(void *field)
Returns the type of the field.
INVENTORWRAPPER_API void InvNodeDisableNotify(void *node)
Disables the notification of a node.
INVENTORWRAPPER_API void InvSbVec4fSetValue(void *vecs, int index, const float value[4])
Sets the value of a SbVec4f array.
INVENTORWRAPPER_API void InvNodeFieldSetNodePointer(void *field, void *node)
Sets a pointer of the node in a SoNodeField, may be NULL.
INVENTORWRAPPER_API void * InvCreateFieldSensor(void *target, InvSensorCB *callback, int priority)
Inventor Sensors.
INVENTORWRAPPER_API void InvMFVec2dFinishEditing(void *field)
Stops editing SoMFVec2d field.
INVENTORWRAPPER_API int InvFieldGetNumEnums(void *field)
Returns the number of enum values of the field.
INVENTORWRAPPER_API int InvFieldSensorGetPriority(void *sensor)
Returns the priority of the sensor.
INVENTORWRAPPER_API int InvSFBoolFieldGetValue(void *field)
INVENTORWRAPPER_API void InvSFRotationGetValue(void *field, float *values)
INVENTORWRAPPER_API int InvNodeGetNumFields(void *node)
Returns the number of fields in the given node.
INVENTORWRAPPER_API void InvSFRotationdSetValue(void *field, const double *values)
INVENTORWRAPPER_API void InvXVImageFieldConnectFromML(void *field, void *mlConnector)
Deprecated method, use the InvMLImageFieldConnectFromML.
INVENTORWRAPPER_API void * InvSFMLConnectorGetPtr(void *field)
Inventor ML Fields.
INVENTORWRAPPER_API void InvSFEnumFieldSetValue(void *field, int value)
INVENTORWRAPPER_API int InvNodeIsDerivedFrom(void *node, const char *superclass)
Checks whether node is derived from superclass.
INVENTORWRAPPER_API int InvSensorManagerIsDelaySensorPending()
Checks whether a delay queue sensor is pending.
INVENTORWRAPPER_API SensorManagerCB InvSensorManagerGetChangedCB(void **data)
Returns the current sensor manager callback.
INVENTORWRAPPER_API void * InvCreateWriteAction()
Creates a write action.
INVENTORWRAPPER_API size_t InvNodeGetFieldValue(void *node, const char *name, char *value, size_t size)
Returns the value of given the field, returns the required buffer size.
INVENTORWRAPPER_API int InvGroupGetNumChildren(void *group)
Returns the number of children in SoGroup (not recursive).
INVENTORWRAPPER_API void InvMFVec2fFinishEditing(void *field)
Stops editing SoMFVec2f field.
INVENTORWRAPPER_API void InvSFVec4dGetValue(void *field, double *values)
INVENTORWRAPPER_API void * InvEngineGetIndexedOutput(void *engine, int index)
Returns the output at index.
INVENTORWRAPPER_API size_t InvMFieldGetValueSize(void *field, int index)
Returns the needed buffer size for the value of a SoMFField field.
INVENTORWRAPPER_API void InvSbVec4dSetValue(void *vecs, int index, const double value[4])
Sets the value of a SbVec4d array.
INVENTORWRAPPER_API void InvNodeUnref(void *node)
Unreferences the node.
INVENTORWRAPPER_API void InvSFFloatFieldSetValue(void *field, float value)
INVENTORWRAPPER_API void InvSFVec4fGetValue(void *field, float *values)
INVENTORWRAPPER_API void InvMFVec4dFinishEditing(void *field)
Stops editing SoMFVec4d field.
INVENTORWRAPPER_API void * InvGroupGetChildAtIndex(void *group, int index)
Returns the child at index of SoGroup node.
INVENTORWRAPPER_API const char * InvOutputGetType(void *output)
Returns the type string of the output.
INVENTORWRAPPER_API size_t InvFieldGetValueSize(void *field)
Returns the required buffer size.
INVENTORWRAPPER_API void InvWriteActionUseBuffer(void *action)
Sets write action to use a buffer.
INVENTORWRAPPER_API void InvSensorManagerProcessTimerQueue()
Processes the timer queue.
INVENTORWRAPPER_API void * InvCreateSceneFromBuffer(void *buffer, size_t size)
Creates a scene from a given buffer (no null-terminator needed).
INVENTORWRAPPER_API void * InvNodeGetField(void *node, const char *name)
Returns the field of a node by its name.
INVENTORWRAPPER_API void InvSFPlanedSetValue(void *field, const double *values)
INVENTORWRAPPER_API int InvSensorManagerIsTimerSensorPending(double *interval)
Checks whether a timer sensor is pending.
INVENTORWRAPPER_API void InvSensorManagerProcessDelayQueue(int idle)
Processes the delay queue (idle==0 means not idle, idle==1 means to schedule idle sensors as well).
INVENTORWRAPPER_API void InvSensorManagerSetChangedCB(SensorManagerCB func, void *data)
Sets the sensor manager changed callback; called whenever the sensor manager notes a change.
INVENTORWRAPPER_API size_t InvNodeGetValues(void *node, char *values, size_t size)
Stores node to a buffer, returns the needed size.
INVENTORWRAPPER_API void InvFieldDisconnect(void *field)
Disconnects the field.
INVENTORWRAPPER_API void * InvMFVec3fStartEditing(void *field)
Starts editing SoMFVec3f field.
INVENTORWRAPPER_API void InvSFInt32FieldSetValue(void *field, int value)
INVENTORWRAPPER_API void InvBaseSetName(void *base, const char *name)
Sets the name of the node or engine.
INVENTORWRAPPER_API void InvSFMLBaseSetPtr(void *field, void *base)
INVENTORWRAPPER_API void InvGroupRemoveAllChildren(void *group)
Removes all children from SoGroup.
INVENTORWRAPPER_API void InvSFVec2dGetValue(void *field, double *values)
INVENTORWRAPPER_API void InvGroupAddChild(void *group, void *child)
Inventor SoGroup.
INVENTORWRAPPER_API void InvSFVec3dGetValue(void *field, double *values)
INVENTORWRAPPER_API unsigned int InvSFUInt32FieldGetValue(void *field)
INVENTORWRAPPER_API void * InvCreateTimerSensor(void *target, InvSensorCB *callback)
Timer sensors.
INVENTORWRAPPER_API void InvSbVec3fSetValue(void *vecs, int index, const float value[3])
Sets the value of a SbVec3f array.
INVENTORWRAPPER_API void * InvMFVec2dStartEditing(void *field)
Starts editing SoMFVec2d field.
INVENTORWRAPPER_API int InvFieldConnectFrom(void *field, void *srcfield)
Connects from the given field.
INVENTORWRAPPER_API void InvMLImageFieldDisconnectFromML(void *field)
Disconnects the given SoSFMLImage field if it was connected to ML.
INVENTORWRAPPER_API void InvSFRotationdGetValue(void *field, double *values)
INVENTORWRAPPER_API void InvSFBoolFieldSetValue(void *field, int value)
INVENTORWRAPPER_API void InvTimerSensorSchedule(void *timer)
Starts the timer.
INVENTORWRAPPER_API void InvSFVec2fGetValue(void *field, float *values)
INVENTORWRAPPER_API void InvDeleteWriteAction(void *action)
Deletes the write action.
INVENTORWRAPPER_API void InvNodeSync(void *src, void *dest)
Syncs two nodes.
INVENTORWRAPPER_API int InvNodeIsOverride(void *node)
Return the override flag of a node (0 == false, 1 == true).
INVENTORWRAPPER_API int InvInit(void *window)
INVENTORWRAPPER_API void InvMFVec3dFinishEditing(void *field)
Stops editing SoMFVec3d field.
INVENTORWRAPPER_API void * InvWriteActionGetBuffer(void *action, size_t *size)
Returns the buffer of the write action (needs a call to InvWriteActionUseBuffer).
INVENTORWRAPPER_API void * InvDBCreateGlobalField(const char *name, const char *type)
Inventor Fields.
INVENTORWRAPPER_API void InvFieldTouch(void *field)
Touches the field.
INVENTORWRAPPER_API void * InvCreateSceneFromFile(const char *filename)
Scene creation and writing.
INVENTORWRAPPER_API void InvSFRotationSetValue(void *field, const float *values)
INVENTORWRAPPER_API void * InvMFVec3dStartEditing(void *field)
Starts editing SoMFVec3d field.
INVENTORWRAPPER_API void InvWriteActionApplyNode(void *action, void *node)
Applies write action to given node.
INVENTORWRAPPER_API void InvSFVec3dSetValue(void *field, const double *values)
INVENTORWRAPPER_API void InvSFDoubleFieldSetValue(void *field, double value)
INVENTORWRAPPER_API void InvSbVec3dSetValue(void *vecs, int index, const double value[3])
Sets the value of a SbVec3d array.
INVENTORWRAPPER_API const char * InvNodeGetType(void *node)
Returns the type of a node as string.
INVENTORWRAPPER_API void InvSFStringSetValue(void *field, const char *value)
Sets the string value of a SoSFString field.
INVENTORWRAPPER_API void * InvSFMLBaseGetPtr(void *field)
Returns the ml::Base pointer stored in SoSFMLBase field (may be NULL).
INVENTORWRAPPER_API size_t InvNodeGetValuesSize(void *node)
Returns the size that is needed to store the node to a buffer.
INVENTORWRAPPER_API void InvNodeEnableNotify(void *node)
Enables the notification of a node.
INVENTORWRAPPER_API const char * InvFieldGetEnumName(void *field, int index, int *value)
Returns the enum name and gets the value of field's enum value at index.
INVENTORWRAPPER_API void InvSbVec2fSetValue(void *vecs, int index, const float value[2])
Sets the value of a SbVec2f array.
INVENTORWRAPPER_API void InvGroupReplaceChild(void *group, void *newchild, int index)
Replaces a child at index with a newchild in a SoGroup derived node.
INVENTORWRAPPER_API size_t InvFieldGetValue(void *field, char *value, size_t size)
Gets the value of a field, returns the size needed for the value. If it does not fit,...
INVENTORWRAPPER_API int InvSFInt32FieldGetValue(void *field)
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
signed int MLint32
Definition mlTypeDefs.h:161