GraphicalWObject Class Referenceabstract

An helper class to draw stuffs in the world. More...

Inheritance diagram for GraphicalWObject:

Public Member Functions

 GraphicalWObject (World *world, QString name="unamed", const wMatrix &tm=wMatrix::identity())
 Constructor. More...
 
virtual ~GraphicalWObject ()
 Destructor. More...
 
WObjectattachedObject () const
 The object to which we are attached. More...
 
void attachToObject (WObject *object, bool makeOwner=false, const wMatrix &displacement=wMatrix::identity())
 Attaches this object to another WObject. More...
 
const wMatrixgetDisplacement () const
 Returns the displacement matrix relative to the object to which we are attached. More...
 
void setDisplacement (const wMatrix &displacement)
 Sets the displacement matrix relative to the object to which we are attached. More...
 
void updateAndCalculateAABB (wVector &minPoint, wVector &maxPoint, const wMatrix tm)
 Returns the min and max points of the Axis-Aligned Bounding Box (AABB) More...
 
void updateAndCalculateOBB (wVector &dimension, wVector &minPoint, wVector &maxPoint)
 Returns the dimension of the Oriented Bounding Box (OBB) in the object local frame. More...
 
void updateAndRender (RenderWObject *renderer, QGLContext *gw)
 Performs the actual drawing. More...
 
void updateAndRenderAABB (RenderWObject *renderer, RenderWorld *gw)
 The function rendering the Axis-Aligned Bounding Box (AABB) More...
 
- Public Member Functions inherited from WObject
 WObject (World *world, QString name="unamed", const wMatrix &tm=wMatrix::identity(), bool addToWorld=true)
 create the object and automatically put this into the world More...
 
virtual ~WObject ()
 destroy the Object and drop it from the world More...
 
QColor color () const
 return the color of this object More...
 
void drawLocalAxes (bool d)
 Sets whether the object local frame of reference should be drawn or not. More...
 
bool isInvisible () const
 return if it is invisible More...
 
const QString & label () const
 Returns the text label to render along with the object. More...
 
const QColor & labelColor () const
 Returns the color of the label. More...
 
const wVectorlabelPosition () const
 Returns the label position relative to this object. More...
 
bool labelShown () const
 Returns whether the label is shown or not. More...
 
bool localAxesDrawn () const
 Returns true if the local frame of refecence of the object should be drawn. More...
 
const wMatrixmatrix () const
 return a reference to the transformation matrix More...
 
QString name () const
 Return the name of this object. More...
 
virtual void postUpdate ()
 postUpdate the WObject this method is called at each step of the world just after the physic update More...
 
virtual void preUpdate ()
 preUpdate the WObject this method is called at each step of the world just before the physic update More...
 
void setAlpha (int alpha)
 set the value of alpha channel (the transparency) More...
 
void setColor (QColor c)
 Set the color to use on rendering. More...
 
void setInvisible (bool b)
 set invisibility More...
 
void setLabel (QString label)
 Sets a text label to render along with the object. More...
 
void setLabel (QString label, wVector pos)
 Sets a text label to render along with the object and its position. More...
 
void setLabel (QString label, wVector pos, QColor color)
 Sets a text label to render along with the object and its position and color. More...
 
void setLabelColor (const QColor &color)
 Sets the color of the label. More...
 
void setLabelPosition (const wVector &pos)
 Sets the label position relative to this object. More...
 
void setMatrix (const wMatrix &newm)
 set a new matrix More...
 
void setPosition (const wVector &newpos)
 set the position specified in global coordinate frame More...
 
void setPosition (real x, real y, real z)
 set the position specified in global coordinate frame More...
 
void setTexture (QString textureName)
 Set the texture to use for this WObject when rendered. More...
 
void setUseColorTextureOfOwner (bool b)
 set if the object will be rendered with the color and texture of our owner (if we have one) More...
 
void showLabel (bool show)
 Sets whether to show the label or not. More...
 
QString texture () const
 Return the texture name. More...
 
bool useColorTextureOfOwner () const
 if true, we will use color and texture of our owner (if we have one) More...
 
Worldworld ()
 Return the world. More...
 
const Worldworld () const
 Return the world (const version) More...
 
- Public Member Functions inherited from Ownable
 Ownable ()
 Constructor. More...
 
virtual ~Ownable ()
 Destructor. More...
 
const QList< Owned > & owned () const
 Returns the list of objects owned by this one. More...
 
Ownableowner () const
 Returns the owner of this object. More...
 
void setOwner (Ownable *owner, bool destroy=true)
 Sets the owner of this object. More...
 

Protected Member Functions

virtual void calculateAABB (wVector &minPoint, wVector &maxPoint, const wMatrix tm)
 Returns the min and max points of the Axis-Aligned Bounding Box (AABB) More...
 
virtual void calculateOBB (wVector &dimension, wVector &minPoint, wVector &maxPoint)
 Returns the dimension of the Oriented Bounding Box (OBB) in the object local frame If there is no meaningful OBB, set dimension, minPoint and maxPoint to (0, 0, 0), as the default implementation does. More...
 
virtual void render (RenderWObject *renderer, QGLContext *gw)=0
 Performs the actual drawing. More...
 
virtual void renderAABB (RenderWObject *renderer, RenderWorld *gw)
 The function rendering the Axis-Aligned Bounding Box (AABB) More...
 
void updateMatrixFromAttachedObject ()
 Updates the transformation matrix from the object to which we are attached (if there is one) More...
 
- Protected Member Functions inherited from WObject
virtual void changedMatrix ()
 virtual function called when the transformation matrix change More...
 

Additional Inherited Members

- Public Types inherited from Ownable
typedef QList< OwnedOwnedList
 The type for the list of owned objects. More...
 
- Protected Attributes inherited from WObject
QColor colorv
 Color, it contains also alpha channel. More...
 
bool invisible
 if TRUE it will not renderized More...
 
QColor labelcol
 The color of the label. More...
 
bool labeldrawn
 Whether the label should be rendered or not. More...
 
wVector labelpos
 The position of the label in the object frame of reference. More...
 
QString labelv
 The text label of the object. More...
 
bool localFrameOfReferenceDrawn
 If true, the local frame of reference of the object is drawn. More...
 
QString namev
 Name of the WObject. More...
 
QString texturev
 Texture name. More...
 
wMatrix tm
 Trasformation matrix. More...
 
bool usecolortextureofowner
 if true, we will use color and texture of our owner (if we have one). More...
 
Worldworldv
 World. More...
 

Detailed Description

An helper class to draw stuffs in the world.

This class is useful to add to the world purely graphical objects. All the drawing can be done directly inside child of this classes (without the need for a separate RenderWObject class). Moreover it is possible to attach object of this type to another WObject: the transformation matrix of this object will be set to be the same as the one of the WObject to which this one is attached when drawing is required. It is also possible to specify a displacement matrix relative to the object to which we are attached: in this case the transformation matrix of this object is set to the combination of the transformation matrix of the object to which we are attached and the displacement matrix when drawing is required

Definition at line 48 of file graphicalwobject.h.

Constructor & Destructor Documentation

GraphicalWObject ( World world,
QString  name = "unamed",
const wMatrix tm = wMatrix::identity() 
)

Constructor.

Parameters
worldthe world the object lives in
namethe name of this object
tmthe transformation matrix for this object

Definition at line 28 of file graphicalwobject.cpp.

~GraphicalWObject ( )
virtual

Destructor.

Definition at line 38 of file graphicalwobject.cpp.

Member Function Documentation

WObject* attachedObject ( ) const
inline

The object to which we are attached.

Returns
the object to which we are attached

Definition at line 88 of file graphicalwobject.h.

void attachToObject ( WObject object,
bool  makeOwner = false,
const wMatrix displacement = wMatrix::identity() 
)

Attaches this object to another WObject.

When we are attached to an object, our transformation matrix is set to the one of the object to which we are attached before drawing is performed

Parameters
objectthe WObject to which we are attached. If NULL we are not attached to any object
makeOwnerif true object is made the owner of this so that when object is destroyed this one is destroyed too
displacementthe transformation matrix relative to the object to which we are attached. This matrix is ignored if we are not attached to any object

Definition at line 43 of file graphicalwobject.cpp.

References Ownable::setOwner().

Referenced by PhyMarXbot::setDrawFrontMarker(), PhyKhepera::setDrawFrontMarker(), PhyEpuck::setDrawFrontMarker(), and SingleIRGraphic::SingleIRGraphic().

void calculateAABB ( wVector minPoint,
wVector maxPoint,
const wMatrix  tm 
)
protectedvirtual

Returns the min and max points of the Axis-Aligned Bounding Box (AABB)

If there is no meaningful AABB, set both minPoint and maxPoint to (0, 0, 0), as the default implementation does

Parameters
minPointthe minimum point of the AABB
maxPointthe maximum point of the AABB
tmthe transformation matrix with respect to which the minPoint and maxPoint of AABB have to be calculated

Definition at line 93 of file graphicalwobject.cpp.

Referenced by GraphicalWObject::updateAndCalculateAABB().

void calculateOBB ( wVector dimension,
wVector minPoint,
wVector maxPoint 
)
protectedvirtual

Returns the dimension of the Oriented Bounding Box (OBB) in the object local frame If there is no meaningful OBB, set dimension, minPoint and maxPoint to (0, 0, 0), as the default implementation does.

Parameters
dimensionthe dimension of the OBB
minPointthe minimum point of the OBB
maxPointthe maximum point of the OBB

Definition at line 100 of file graphicalwobject.cpp.

Referenced by GraphicalWObject::updateAndCalculateOBB().

const wMatrix& getDisplacement ( ) const
inline

Returns the displacement matrix relative to the object to which we are attached.

This matrix is ignored if we are not attached to any object

Returns
the displacement matrix relative to the object to which we are attached

Definition at line 111 of file graphicalwobject.h.

virtual void render ( RenderWObject renderer,
QGLContext *  gw 
)
protectedpure virtual

Performs the actual drawing.

Reimplement to draw what you need

Parameters
rendererthe RenderWObject object associated with this one. Use it e.g. to access the container
gwthe OpenGL context

Implemented in SingleIRGraphic, PlanarArrowGraphicalMarker, and CircularGraphicalMarker.

Referenced by GraphicalWObject::updateAndRender().

void renderAABB ( RenderWObject renderer,
RenderWorld gw 
)
protectedvirtual

The function rendering the Axis-Aligned Bounding Box (AABB)

The default implementation does nothing

Parameters
rendererthe RenderWObject object associated with this one. Use it e.g. to access the container
gwthe object rendering the world

Definition at line 88 of file graphicalwobject.cpp.

Referenced by GraphicalWObject::updateAndRenderAABB().

void setDisplacement ( const wMatrix displacement)

Sets the displacement matrix relative to the object to which we are attached.

This matrix is ignored if we are not attached to any object

Parameters
displacementthe displacement matrix relative to the object to which we are attached

Definition at line 55 of file graphicalwobject.cpp.

void updateAndCalculateAABB ( wVector minPoint,
wVector maxPoint,
const wMatrix  tm 
)

Returns the min and max points of the Axis-Aligned Bounding Box (AABB)

This calls the calculateAABB() function after updating the transformation matrix. See the description of that function for more details

Parameters
minPointthe minimum point of the AABB
maxPointthe maximum point of the AABB
tmthe transformation matrix with respect to which the minPoint and maxPoint of AABB have to be calculated

Definition at line 74 of file graphicalwobject.cpp.

References GraphicalWObject::calculateAABB(), and GraphicalWObject::updateMatrixFromAttachedObject().

void updateAndCalculateOBB ( wVector dimension,
wVector minPoint,
wVector maxPoint 
)

Returns the dimension of the Oriented Bounding Box (OBB) in the object local frame.

This calls the calculateOBB() function after updating the transformation matrix. See the description of that function for more details

Parameters
dimensionthe dimension of the OBB
minPointthe minimum point of the OBB
maxPointthe maximum point of the OBB

Definition at line 81 of file graphicalwobject.cpp.

References GraphicalWObject::calculateOBB(), and GraphicalWObject::updateMatrixFromAttachedObject().

void updateAndRender ( RenderWObject renderer,
QGLContext *  gw 
)

Performs the actual drawing.

This calls the render() function after updating the transformation matrix. See the description of that function for more details

Parameters
rendererthe RenderWObject object associated with this one. Use it e.g. to access the container
gwthe OpenGL context

Definition at line 60 of file graphicalwobject.cpp.

References GraphicalWObject::render(), and GraphicalWObject::updateMatrixFromAttachedObject().

void updateAndRenderAABB ( RenderWObject renderer,
RenderWorld gw 
)

The function rendering the Axis-Aligned Bounding Box (AABB)

This calls the renderAABB() function after updating the transformation matrix. See the description of that function for more details

Parameters
rendererthe RenderWObject object associated with this one. Use it e.g. to access the container
gwthe object rendering the world

Definition at line 67 of file graphicalwobject.cpp.

References GraphicalWObject::renderAABB(), and GraphicalWObject::updateMatrixFromAttachedObject().

void updateMatrixFromAttachedObject ( )
protected

Updates the transformation matrix from the object to which we are attached (if there is one)

Definition at line 108 of file graphicalwobject.cpp.

References WObject::matrix(), and WObject::setMatrix().

Referenced by GraphicalWObject::updateAndCalculateAABB(), GraphicalWObject::updateAndCalculateOBB(), GraphicalWObject::updateAndRender(), and GraphicalWObject::updateAndRenderAABB().


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