Contents

1 Introduction

The data of an OpenMBV visualization consist of two parts: a XML file (<filename>.ombvx) and a HDF5 file (<filename>.ombvh5).

The root element of the XML file must be <Group>. The syntax, the attributes and the possible children for the XML elements is documented in the section Elements. A full valid example XML file (TS.ombvx) is given by:

<?xml version="1.0" encoding="UTF-8"?>
<Group name="TS" expand="1" enable="1" xmlns="http://www.mbsim-env.de/OpenMBV">
  <Group name="Hauptgruppe1" expand="1" enable="1">
    <Cuboid name="Box1" enable="1">
      <minimalColorValue>0</minimalColorValue>
      <maximalColorValue>1</maximalColorValue>
      <diffuseColor>[0.3;1;1]</diffuseColor>
      <initialTranslation>[0;0;0]</initialTranslation>
      <initialRotation>[0;0;0]</initialRotation>
      <scaleFactor>1</scaleFactor>
      <length>[0.5;0.5;0.5]</length>
    </Cuboid>
    <Frame name="P1" enable="1">
      <minimalColorValue>0</minimalColorValue>
      <maximalColorValue>1</maximalColorValue>
      <diffuseColor>[-1;1;1]</diffuseColor>
      <initialTranslation>[0;0;0]</initialTranslation>
      <initialRotation>[0;0;0]</initialRotation>
      <scaleFactor>1</scaleFactor>
      <size>0.5</size>
      <offset>1</offset>
    </Frame>
  </Group>
</Group>

The according HDF5 file (TS.ombvh5) must provide two datasets with the following path in the HDF5 file:

The content of the datasets is also documented in section Elements.

2 Nomenclature

2.1 Legend

IconDescription
<element>A XML element of name 'element'
attrNameA XML attribute of name 'attrName'
namespaceA XML namespace of name 'namespace'
typeA XML element or attribute type of name 'type'
requiredA required XML attribute
0-2A occurance of XML elements or attributes

2.2 An element

<ElementName> 0-2 elementType
attrName1 required typeOfTheAttribute
attrName2 optional typeOfTheAttribute

Documentation of the element.

The upper nomenclature defines a XML element named ElementName with (if given) a minimal occurance of 0 and a maximal occurance of 2. The element is of type elementType.
A occurance of optional means 0-1.
The element has two attributes named attrName1 and attrName2 of type typeOfTheAttribute. A attribute can be optional or required.

2.3 A choice of element

The upper nomenclature defines a choice of elements. Only one element of the given ones can be used. The choice has, if given, a minimal occurance of 1 and a maximal maximal occurence of 2.
A occurance of optional means 0-1.

2.4 A sequence of elements

The upper nomenclature defines a sequence of elements. Each element must be given in that order. The sequence has, if given, a minimal occurance of 0 and a maximal maximal occurence of 3.
A occurance of optional means 0-1.

2.5 Nested sequences/choices

Sequences and choices can be nested like above.

2.6 Child Elements

A indent indicates child elements for a given element.

3 Elements

<Object>
Object properties
Abstract Element:true
Inherits:
Inherited by:<Body>, <Group>,
Attributes:name required pv:stringPartialEval
enable pv:booleanFullEval
boundingBox pv:booleanFullEval
environment pv:booleanFullEval
Object documentation
Abstract base class
Child Elements

<Body>
Object properties
Abstract Element:true
Inherits: <Object>
Inherited by:<DynamicColoredBody>, <IvScreenAnnotation>, <Path>,
Attributes:outLine pv:booleanFullEval
shilouetteEdge pv:booleanFullEval
drawMethod pv:stringPartialEval
pointSize pv:floatFullEval
lineWidth pv:floatFullEval
Object documentation
Abstract base class for all bodies
Child Elements

<DynamicColoredBody>
Object properties
Abstract Element:true
Inherits: <Body>
Inherited by:<Arrow>, <CoilSpring>, <DynamicNurbsCurve>, <DynamicNurbsSurface>, <FlexibleBody>, <NurbsDisk>, <RigidBody>, <SpineExtrusion>,
Attributes:
Object documentation
Abstract base class for all dynamically colored bodies
Child Elements

<Arrow>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:path pv:booleanFullEval
Object documentation
A arrow with zero, one or two heads
HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order given in world frame: time, "to" point x, "to" point y, "to" point z, delta x, delta y, delta z, color
Child Elements

<CoilSpring>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:
Object documentation
A coil spring
HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order given in world frame: time, "from" point x, "from" point y, "from" point z, "to" point x, "to" point y, "to" point z, color
Child Elements

<DynamicNurbsCurve>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:
Object documentation
A dynamic nurbs curve
Child Elements

<DynamicNurbsSurface>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:
Object documentation
A dynamic nurbs surface
Child Elements

<FlexibleBody>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:<DynamicIndexedFaceSet>, <DynamicIndexedLineSet>, <DynamicPointSet>,
Attributes:
Object documentation
Abstract base class for all flexible bodies.
Child Elements

<DynamicIndexedFaceSet>
Object properties
Abstract Element:false
Inherits: <FlexibleBody>
Inherited by:
Attributes:
Object documentation
A dynamic indexed face set
Child Elements

<DynamicIndexedLineSet>
Object properties
Abstract Element:false
Inherits: <FlexibleBody>
Inherited by:
Attributes:
Object documentation
A dynamic indexed line set
Child Elements

<DynamicPointSet>
Object properties
Abstract Element:false
Inherits: <FlexibleBody>
Inherited by:
Attributes:
Object documentation
A dynamic point set
Child Elements

<NurbsDisk>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:localFrame pv:booleanFullEval
Object documentation
Class for all bodies with a NURBS surface and a primitive closure.
author
Kilian Grundl
author
Raphael Missel
author
Thorsten Schindler
date
2009-05-20 initial commit (Grundl / Missel / Schindler)
date
2009-08-16 visualisation / contour (Grundl / Missel / Schindler)
date
2010-08-09 adapt to new concept of Markus Friedrich (Schindler)
Child Elements

<RigidBody>
Object properties
Abstract Element:true
Inherits: <DynamicColoredBody>
Inherited by:<BevelGear>, <CompoundRigidBody>, <Cube>, <Cuboid>, <Cylinder>, <CylindricalGear>, <Extrusion>, <Frame>, <Frustum>, <Grid>, <IndexedFaceSet>, <IndexedLineSet>, <InvisibleBody>, <IvBody>, <NurbsCurve>, <NurbsSurface>, <PlanarGear>, <PointSet>, <Rack>, <Rotation>, <Sphere>,
Attributes:localFrame pv:booleanFullEval
referenceFrame pv:booleanFullEval
path pv:booleanFullEval
dragger pv:booleanFullEval
Object documentation
Abstract base class for all rigid bodies.
Each rigid body has a body fixed local coordinate system L and a reference coordinate system R which has a fixed relative position and rotation with respect to L (see figure). And there is a inertial fixed world coordinate system W.
Coordinate Systems of Rigid Body
rigidbodycos.svg
The fixed translation from system R to system L is given by the vector initialTranslation \( [_R x_B, _R y_B, _R z_B]^T \) which coordinates are given in system R.
The fixed rotation between the systems R and L is given by the vector initialRotation \( [\alpha_B, \beta_B, \gamma_B]^T \) which are the kardan angles of the transformation matrix \[ A_{RL}= \textrm{cardan}(\alpha_B, \beta_B, \gamma_B) \] from system L to system R.
The time dependend translation between the systems W and R is given in the HDF5 dataset by the vector \( [_W x_P, _W y_P, _W z_P]^T=_W r_P \) which coordinates are given in system W.
The time dependend rotation between the systems W and R is given in the HDF5 dataset by the vector \( [\alpha_P, \beta_P, \gamma_P] \) which are the kardan angles of the transformation matrix \[ A_{WR}= \textrm{cardan}(\alpha_P, \beta_P, \gamma_P) \] from system R to system W.
HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order: time, \( _W x_P \) , \( _W y_P \) , \( _W z_P \) , \( \alpha_P \) , \( \beta_P \) , \( \gamma_P \) , color
Child Elements

<BevelGear>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A bevel gear with an octoidal tooth profile
Child Elements

<CompoundRigidBody>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:expand pv:booleanFullEval
Object documentation
A compound of rigid bodies
Child Elements

<Cube>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A cube
Child Elements

<Cuboid>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A cuboid
Child Elements

<Cylinder>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A cylinder
Child Elements

<CylindricalGear>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A cylindrical gear with an involute tooth profile
Child Elements

<Extrusion>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A extrusion of a cross section area (with holes)
Child Elements

<Frame>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A frame; A coordinate system
Child Elements

<Frustum>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A frustum (with a frustum hole)
Child Elements

<Grid>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A grid in x-y-Plane
Child Elements

<IndexedFaceSet>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
An indexed face set
Child Elements

<IndexedLineSet>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
An indexed line set
Child Elements

<InvisibleBody>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A invisible body
Child Elements

<IvBody>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A body defined by a Open Inventor file or a VRML file. If a node named OpenMBVIvBodyMaterial exists and is of type SoMaterial then the diffuseColor and specularColor field of this node is connected to the dynamic color of this body. After this connection is done (during the ctor) the name OpenMBVIvBodyMaterial is removed from the node/name mapping.
Child Elements

<NurbsCurve>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A nurbs curve
Child Elements

<NurbsSurface>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A nurbs surface
Child Elements

<PlanarGear>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A planar gear
Child Elements

<PointSet>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A point set
Child Elements

<Rack>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A rack
Child Elements

<Rotation>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
Rotation of a cross section area
Child Elements

<Sphere>
Object properties
Abstract Element:false
Inherits: <RigidBody>
Inherited by:
Attributes:
Object documentation
A sphere
Child Elements

<SpineExtrusion>
Object properties
Abstract Element:false
Inherits: <DynamicColoredBody>
Inherited by:
Attributes:
Object documentation
Class for all bodies extruded along a curve.
author
Thorsten Schindler
HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order given in world frame (N is the number of spine points): time, spine point 1 x, spine point 1 y, spine point 1 z, spine twist 1, spine point 2 x, spine point 2 y, spine point 2 z, spine twist 2, ..., spine point N x, spine point N y, spine point N z, spine twist N
Child Elements

<IvScreenAnnotation>
Object properties
Abstract Element:false
Inherits: <Body>
Inherited by:
Attributes:
Object documentation
A screen annotation defined by a Open Inventor file or a VRML file.
This object is very special and behaves quite different compared to usual objects. It not placed in the 3D scene and is not influenced by the camera or lights in the scene. Hence, use e.g. a Material node with emissiveColor field to define the color of geometry. It is placed in normalized screen coordinates. The x-axis is horizontal and the y-axis is vertical. The bottom left coordinate is -1,-1 and the top right coordinate is 1,1. The z-coordinate is irrelevant since z-buffering is disabled for these objects sicne its children are transparently render on top of the other. This means that a node defined later in the IV file will override previously nodes on the screen.
Note that the aspect ratio is only 1:1 if the screen is a square. However, it is possible to do an automatically scaling to ensure that the aspect ratio is always 1:1, see setScale1To1At.
The dynamic data of this object is defined by the user, see setColumnLabels. For each column a named node is created which can be accessed from the IV file. The node name is the column label and the field "value" of this node holds the dynamic data of the column.
As e.g. RigidBody this object also provides drawing a path. The path point for each frame is defined by the origin of the node named "OpenMBVIvScreenAnnotationPathOrigin" in the IV file. If no such node exists, no path is drawn. If "OpenMBVIvScreenAnnotationPathOrigin" is given than also a node named "OpenMBVIvScreenAnnotationPathSep" of type Separator must exist in the IV file. "OpenMBVIvScreenAnnotationPathSep" MUST NOT be influenced by any translation! However, its position in the scene graph defines the order in with the path is drawn compared to the other nodes, see above. The path is added as a child of this node.
This object can also draw more than one path if the nodes are named "OpenMBVIvScreenAnnotationPathOrigin<nr>". <nr> counts from 1 to N and stops if at the first node name which does not exist. In this case the path is added as a child of the OpenMBVIvScreenAnnotationPathSep node, see above, or, if this node does not exist, as a child of the OpenMBVIvScreenAnnotationPathSep<nr> node.
All named nodes of name OpenMBVIvScreenAnnotation* are remove (during the ctor) from the node/name mapping.
Child Elements

<Path>
Object properties
Abstract Element:false
Inherits: <Body>
Inherited by:
Attributes:
Object documentation
Draw a path of a reference point
HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order given in world frame: time, x, y, z
Child Elements

<Group>
Object properties
Abstract Element:false
Inherits: <Object>
Inherited by:
Attributes:expand pv:booleanFullEval
Object documentation
A container for bodies
Child Elements

4 Simple Types

objectReferenceType

Generated with MBXMLUtils on 2025-06-07T10:02:43Z