VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtFilledPolygon Class Reference

A variable vertex convex filled 2D polygon.

Inheritance diagram for makVrv::DtFilledPolygon:
Inheritance graph
[legend]

Public Member Functions

 DtFilledPolygon (DtOverlayRendererInterface &renderer, DtWidgetPicker &picker)
 
 DtFilledPolygon (DtDe &de, DtChannel *channel, DtModelSetId modelSet)
 
virtual ~DtFilledPolygon ()
 
virtual void setFillType (FillType type)
 
virtual FillType fillType () const
 
virtual void setFillParameter (unsigned int param, unsigned int fullStipplePattern[32]=0) override
 
virtual void setFillTexture (DtTextureInterface *textureHandle) override
 
virtual void clearFillPattern ()
 
virtual void getFillParameter (unsigned int &paramOut, unsigned int fullStipplePatternOut[32]) const override
 
virtual void setFillPatternFrequency (float frequency) override
 
virtual void setEventsEnabled (bool enabled, unsigned long long=0)
 
bool eventsEnabled () const
 
virtual void setVertexCount (unsigned int vertexCount)
 
virtual unsigned int vertexCount () const
 
virtual void set2DPositions (const std::vector< float > &vertices)
 
virtual void set2DPosition (unsigned int vertexIndex, float x, float y)
 
virtual void set2DCentroidPosition (float x, float y)
 
virtual void get2DPosition (unsigned int vertexIndex, float &x, float &y) const
 
virtual void set3DPosition (unsigned int vertexIndex, float x, float y, float z, float w)
 
virtual void set3DCentroidPosition (float x, float y, float z, float w)
 
virtual void get3DPosition (unsigned int index, float &x, float &y, float &z, float &w) const
 
void set3DDirectionAndLength (unsigned int index, float x, float y, float z, float l)
 
virtual void projectUVCoordinates (const DtVector &origin, const DtVector &axisU, const DtVector &axisV, float scale=1.0f) override
 
virtual void setStipple (unsigned int stipplePattern)
 
virtual void setVertexColor (unsigned int index, float r, float g, float b, float a)
 
virtual void getVertexColor (unsigned int index, float &r, float &g, float &b, float &a)
 
virtual void setCentroidColor (float r, float g, float b, float a)
 
virtual void setColor (float r, float g, float b, float a)
 
virtual void getColor (float &r, float &g, float &b, float &a) const
 
virtual int group () const
 
virtual void setGroup (int)
 
virtual void triangulate ()
 
virtual void set2DPositionsTriangles (const std::vector< float > &vertices)
 
virtual void setVertexCountTriangles (unsigned int vertexCount)
 
- Public Member Functions inherited from makVrv::DtFilledPolygonInterface
 DtFilledPolygonInterface ()
 
virtual ~DtFilledPolygonInterface ()
 
- Public Member Functions inherited from makVrv::DtPolygonInterface
 DtPolygonInterface ()=default
 
 DtPolygonInterface (DtPolygonInterface &)=delete
 
 DtPolygonInterface (DtPolygonInterface &&)=delete
 
DtPolygonInterfaceoperator= (DtPolygonInterface &)=delete
 
DtPolygonInterfaceoperator= (DtPolygonInterface &&)=delete
 
virtual ~DtPolygonInterface ()
 
virtual void triangulationComplete (bool crossingLines)
 

Protected Types

typedef std::vector< float > VertexList
 
typedef std::vector
< DtTriangleProxy * > 
TriangleProxyList
 
typedef std::vector
< DtPickableTriangle * > 
PickableTriangleList
 

Protected Member Functions

virtual void slot_pickerDestroyed ()
 

Protected Attributes

DtOverlayRendererInterfacemyRenderer
 
DtWidgetPickermyPicker
 
bool myEventsEnabled
 
bool myPickerDestroyed
 
boost::signalslib::connection myPickerDestroyedConnection
 
unsigned long long myUserData
 
VertexList myVertices
 
VertexList my3DVertices
 
float myCenterPoint [2]
 
double my3DCenterPoint [3]
 
TriangleProxyList myTriangles
 
PickableTriangleList myPickableTriangles
 
unsigned int myFillParam
 
DtTextureInterfacemyFillTexture
 
unsigned int myFullStipplePattern [32]
 
FillType myFillType
 
int myGroup
 

Additional Inherited Members

- Public Types inherited from makVrv::DtFilledPolygonInterface
enum  FillType { Fill_Solid = 0, Fill_Stipple, Fill_Texture, FillType_End }
 

Member Typedef Documentation

typedef std::vector<float> makVrv::DtFilledPolygon::VertexList
protected

Constructor & Destructor Documentation

makVrv::DtFilledPolygon::DtFilledPolygon ( DtOverlayRendererInterface renderer,
DtWidgetPicker picker 
)

CTOR, takes render the overlay will be on.

makVrv::DtFilledPolygon::DtFilledPolygon ( DtDe de,
DtChannel channel,
DtModelSetId  modelSet 
)

CTOR, takes render the triangle render that will draw the polygon.

virtual makVrv::DtFilledPolygon::~DtFilledPolygon ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtFilledPolygon::setFillType ( FillType  type)
virtual

Set the quad fill type. Calling fill type resets the fill parameter, thus the fill parameter must be reset after calling setFillType.

Implements makVrv::DtFilledPolygonInterface.

virtual FillType makVrv::DtFilledPolygon::fillType ( ) const
virtual

Get the fill type.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setFillParameter ( unsigned int  param,
unsigned int  fullStipplePattern[32] = 0 
)
overridevirtual

Set a 32x32 stipple pattern as the fill. If the full stippledPattern (aka a full 32x32 bit array) the initial param is ignored.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setFillTexture ( DtTextureInterface textureHandle)
overridevirtual

Sets the texture to fill the polygon with. The texture is visualized to be centered in the polygon and to fill the polygon with minimal tiling.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::clearFillPattern ( )
virtual

Clears the fill pattern of the quad.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::getFillParameter ( unsigned int paramOut,
unsigned int  fullStipplePatternOut[32] 
) const
overridevirtual

Get the quad fill parameters.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setFillPatternFrequency ( float  frequency)
overridevirtual

Sets the fill pattern tiling frequency. The frequency needs to be 1 / x where x is a whole number. examples: frequency = 1.0 : the tiled pattern will tile normally frequency = 0.5 : the tiled pattern will appear half as often.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setEventsEnabled ( bool  enabled,
unsigned long  long = 0 
)
virtual

Set whether the sprite has widget events. Disabling events disconnects all of the DtFilledPolygon signals The user data is set when enabling the events, to change only the user data make multiple calls with enabled=true.

Implements makVrv::DtFilledPolygonInterface.

bool makVrv::DtFilledPolygon::eventsEnabled ( ) const
virtual

Get whether events are already enabled.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setVertexCount ( unsigned int  vertexCount)
virtual

Set the number of vertices, any newly created vertices will be black and add 0,0,0 so setColor/setPosition may be necessary.

Implements makVrv::DtFilledPolygonInterface.

virtual unsigned int makVrv::DtFilledPolygon::vertexCount ( ) const
virtual

Get the vertex count.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set2DPositions ( const std::vector< float > &  vertices)
virtual

Set the number of vertices and their positions.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set2DPosition ( unsigned int  vertexIndex,
float  x,
float  y 
)
virtual

Set one vertex position. NOTE it is much more efficient to update all vertices using setPositions if several change.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set2DCentroidPosition ( float  x,
float  y 
)
virtual

Sets the position of the polygon's centroid.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::get2DPosition ( unsigned int  vertexIndex,
float &  x,
float &  y 
) const
virtual

Get the vertex position.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set3DPosition ( unsigned int  vertexIndex,
float  x,
float  y,
float  z,
float  w 
)
virtual

Set one vertex position.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set3DCentroidPosition ( float  x,
float  y,
float  z,
float  w 
)
virtual

Sets the position of the polygon's centroid.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::get3DPosition ( unsigned int  index,
float &  x,
float &  y,
float &  z,
float &  w 
) const
virtual

Get the vertex position.

Implements makVrv::DtFilledPolygonInterface.

void makVrv::DtFilledPolygon::set3DDirectionAndLength ( unsigned int  index,
float  x,
float  y,
float  z,
float  l 
)
virtual

Sets an optional 3D direction with a 2D length value for a vertex.

Parameters
indexthe index of the vertex to get the position of
xx component of the position
yy component of the position
zz component of the position
ll length of the vector offset in 2D.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::projectUVCoordinates ( const DtVector origin,
const DtVector axisU,
const DtVector axisV,
float  scale = 1.0f 
)
overridevirtual

Does uv coordinate projection based on the current vertex positions and the given projection parameters.

Parameters
origin- each vertex position will subtract the origin.
axisU- the X axis to project the position along for the u coordinate.
axisV- the Y axis to project the position along for the v coordinate.
scale- the scale to apply to the final uv coordinates.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setStipple ( unsigned int  stipplePattern)
virtual

Set the stipple pattern.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setVertexColor ( unsigned int  index,
float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of a specific vertex.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::getVertexColor ( unsigned int  index,
float &  r,
float &  g,
float &  b,
float &  a 
)
virtual

TODO document.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setCentroidColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of the polygon's centroid.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::getColor ( float &  r,
float &  g,
float &  b,
float &  a 
) const
virtual

Get the color.

Implements makVrv::DtFilledPolygonInterface.

virtual int makVrv::DtFilledPolygon::group ( ) const
virtual

Returns the group that the polygon is on (for Z-Ordering). Default is zero.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setGroup ( int  )
virtual

Sets the group for Z-Ordering.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::triangulate ( )
virtual

As long as there are a divisible by three of triangle proxies, reworks them to be a triangle of three related points, using the center as an anchor point.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::set2DPositionsTriangles ( const std::vector< float > &  vertices)
virtual

Set the number of vertices and their positions. This method is to be used instead of set2DPositions. This method does not calculate/use the center of the polygon as the third vertex for each two passed in like set2DPositions. It expects the triangles to already be calculated, the loop in here skips 6 floats per iteration.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::setVertexCountTriangles ( unsigned int  vertexCount)
virtual

Set the number of vertices, any newly created vertices will be black and add 0,0,0 so setColor/setPosition may be necessary.This method is used instead of setVertexCount when you are calling set2DPositionsTriangles.

Implements makVrv::DtFilledPolygonInterface.

virtual void makVrv::DtFilledPolygon::slot_pickerDestroyed ( )
protectedvirtual

Called when the widget picker is destroyed, clears out pickable segment list and sets a flag to no longer use the picker.

Member Data Documentation

DtOverlayRendererInterface* makVrv::DtFilledPolygon::myRenderer
protected
DtWidgetPicker* makVrv::DtFilledPolygon::myPicker
protected
bool makVrv::DtFilledPolygon::myEventsEnabled
protected
bool makVrv::DtFilledPolygon::myPickerDestroyed
protected
boost::signalslib::connection makVrv::DtFilledPolygon::myPickerDestroyedConnection
protected
unsigned long long makVrv::DtFilledPolygon::myUserData
protected
VertexList makVrv::DtFilledPolygon::myVertices
protected
VertexList makVrv::DtFilledPolygon::my3DVertices
protected
float makVrv::DtFilledPolygon::myCenterPoint[2]
protected
double makVrv::DtFilledPolygon::my3DCenterPoint[3]
protected
TriangleProxyList makVrv::DtFilledPolygon::myTriangles
protected
PickableTriangleList makVrv::DtFilledPolygon::myPickableTriangles
protected
unsigned int makVrv::DtFilledPolygon::myFillParam
protected
DtTextureInterface* makVrv::DtFilledPolygon::myFillTexture
protected
unsigned int makVrv::DtFilledPolygon::myFullStipplePattern[32]
protected
FillType makVrv::DtFilledPolygon::myFillType
protected
int makVrv::DtFilledPolygon::myGroup
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)