Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HeightField Class Reference

Height field primitive. More...

#include <heightfieldprimitive.h>

Inheritance diagram for HeightField:
Collaboration diagram for HeightField:

Public Member Functions

 HeightField (const std::string &filename, float x_size, float y_size, float height)
 
 HeightField (osg::HeightField *heightfield, float x_size, float y_size)
 
virtual ~HeightField ()
 
virtual void init (const OdeHandle &odeHandle, double mass, const OsgHandle &osgHandle, char mode=Body|Geom|Draw)
 registers primitive in ODE and OSG. More...
 
virtual void setPose (const osg::Matrix &pose)
 set the pose of the primitive More...
 
virtual void update ()
 Updates the OSG nodes with ODE coordinates. More...
 
virtual OSGPrimitivegetOSGPrimitive ()
 returns the assoziated osg primitive if there or 0 More...
 
virtual void setMass (double mass, bool density=false)
 sets the mass of the body (uniform) if density==true then mass is interpreted as a density More...
 
- Public Member Functions inherited from Primitive
 Primitive ()
 
virtual ~Primitive ()
 
virtual void setColor (const Color &color)
 sets the color for the underlaying osgprimitive More...
 
virtual void setColor (const std::string &color)
 sets the color using the colorschema of osgHandle More...
 
virtual void setTexture (const std::string &filename)
 assigns a texture to the primitive More...
 
virtual void setTexture (const TextureDescr &texture)
 assigns a texture to the primitive, you can choose if the texture should be repeated More...
 
virtual void setTexture (int surface, const TextureDescr &texture)
 assigns a texture to the x-th surface of the primitive. More...
 
virtual void setTextures (const std::vector< TextureDescr > &textures)
 assign a set of texture to the surfaces of the primitive More...
 
virtual void setPosition (const Pos &pos)
 set the position of the primitive (orientation is preserved) More...
 
virtual Pos getPosition () const
 returns the position More...
 
virtual Pose getPose () const
 returns the pose More...
 
virtual Pos getVel () const
 returns the velocity More...
 
virtual Pos getAngularVel () const
 returns the angular velocity More...
 
virtual bool applyForce (osg::Vec3 force)
 apply a force (in world coordinates) to the primitive and returns true if it was possible More...
 
virtual bool applyForce (double x, double y, double z)
 
virtual bool applyTorque (osg::Vec3 torque)
 apply a torque (in world coordinates) to the primitive and returns true if it was possible More...
 
virtual bool applyTorque (double x, double y, double z)
 
void setMass (double mass, double cgx, double cgy, double cgz, double I11, double I22, double I33, double I12, double I13, double I23)
 sets full mass specification More...
 
dGeomID getGeom () const
 returns ODE geomID if there More...
 
dBodyID getBody () const
 returns ODE bodyID if there More...
 
bool limitLinearVel (double maxVel)
 checks whether the object has higher velocity than maxVel and limits it in case More...
 
bool limitAngularVel (double maxVel)
 checks whether the object has higher velocity than maxVel and limits it in case More...
 
void decellerate (double factorLin, double factorAng)
 applies a force to the body to decellerate its linear and angular velocity with the given factors. More...
 
osg::Vec3 toLocal (const osg::Vec3 &pos) const
 return the given point transformed to local coordinates of the primitive More...
 
osg::Vec4 toLocal (const osg::Vec4 &axis) const
 return the given vector or axis transformed to local coordinates of the primitive (translation depends on the 4th coordinate) More...
 
osg::Vec3 toGlobal (const osg::Vec3 &pos) const
 transforms the given point in local corrds of the primitive to global coordinates More...
 
osg::Vec4 toGlobal (const osg::Vec4 &axis) const
 transforms the given vector or axis in local corrds of the primitive to global coordinates (translation depends on the 4th coordinate) More...
 
int getNumVelocityViolations ()
 
void setSubstance (const Substance &substance)
 
virtual bool store (FILE *f) const
 stores the object to the given file stream (ASCII preferred). More...
 
virtual bool restore (FILE *f)
 loads the object from the given file stream (ASCII preferred). More...
 
- Public Member Functions inherited from Storeable
virtual ~Storeable ()
 
bool storeToFile (const char *filename) const
 Provided for convenience. More...
 
bool restoreFromFile (const char *filename)
 Provided for convenience. More...
 

Protected Attributes

OSGHeightFieldosgheightfield
 
dTriMeshDataID data
 
- Protected Attributes inherited from Primitive
dGeomID geom
 
dBodyID body
 
char mode
 
bool substanceManuallySet
 
int numVelocityViolations
 number of times the maximal velocity was exceeded More...
 

Additional Inherited Members

- Public Types inherited from Primitive
enum  Modes {
  Body =1, Geom =2, Draw =4, Density =8,
  _Child =16, _Transform =32
}
 Body means that it is a dynamic object with a body. More...
 
enum  Category { Dyn =1, Stat =2 }
 
- Static Public Member Functions inherited from Primitive
static void setDestroyGeomFlag (bool _destroyGeom)
 20091023; guettler: hack for tasked simulations; there are some problems if running in parallel mode, if you do not destroy the geom, everything is fine (should be no problem because world is destroying geoms too) More...
 
- Public Attributes inherited from Primitive
Substance substance
 
- Protected Member Functions inherited from Primitive
virtual void attachGeomAndSetColliderFlags ()
 attaches geom to body (if any) and sets the category bits and collision bitfields. More...
 
- Static Protected Attributes inherited from Primitive
static bool destroyGeom = true
 

Detailed Description

Height field primitive.

Constructor & Destructor Documentation

HeightField ( const std::string &  filename,
float  x_size,
float  y_size,
float  height 
)
HeightField ( osg::HeightField *  heightfield,
float  x_size,
float  y_size 
)
~HeightField ( )
virtual

Member Function Documentation

virtual OSGPrimitive* getOSGPrimitive ( )
inlinevirtual

returns the assoziated osg primitive if there or 0

Implements Primitive.

void init ( const OdeHandle odeHandle,
double  mass,
const OsgHandle osgHandle,
char  mode = Body|Geom|Draw 
)
virtual

registers primitive in ODE and OSG.

Parameters
osgHandlescruct with ODE variables inside (to specify space, world...)
massMass of the object in ODE (if withBody = true)
osgHandlescruct with OSG variables inside (scene node, color ...)
modeis a conjuction of Modes.

Implements Primitive.

virtual void setMass ( double  mass,
bool  density = false 
)
inlinevirtual

sets the mass of the body (uniform) if density==true then mass is interpreted as a density

Implements Primitive.

void setPose ( const osg::Matrix pose)
virtual

set the pose of the primitive

Reimplemented from Primitive.

void update ( )
virtual

Updates the OSG nodes with ODE coordinates.

This function must be overloaded (usually calls setMatrix of OsgPrimitives)

Implements Primitive.

Member Data Documentation

dTriMeshDataID data
protected
OSGHeightField* osgheightfield
protected

The documentation for this class was generated from the following files: