Lugre::cRobRenderOp Class Reference

#include <lugre_robrenderable.h>

Inheritance diagram for Lugre::cRobRenderOp:

Inheritance graph
[legend]
Collaboration diagram for Lugre::cRobRenderOp:

Collaboration graph
[legend]

List of all members.

Public Types

enum  eVertexFormat {
  kVertexFormat_none, kVertexFormat_p, kVertexFormat_puv, kVertexFormat_pn,
  kVertexFormat_pnuv, kVertexFormat_pc, kVertexFormat_puvc, kVertexFormat_pnc,
  kVertexFormat_pnuvc
}
 p:position n:normal uv:texcoords c:color More...

Public Member Functions

 cRobRenderOp (Ogre::RenderOperation *pRenderOp=0, Ogre::AxisAlignedBox *pBox=0)
virtual ~cRobRenderOp ()
void Begin (const size_t iVertexCount, const size_t iIndexCount=0, const bool bDynamic=false, const bool bKeepOldIndices=false, const Ogre::RenderOperation::OperationType opType=Ogre::RenderOperation::OT_TRIANGLE_LIST, const bool bReadable=false)
void Vertex (const Ogre::Vector3 &p)
void Vertex (const Ogre::Vector3 &p, const Ogre::Real u, const Ogre::Real v)
void Vertex (const Ogre::Vector3 &p, const Ogre::Vector3 &n)
void Vertex (const Ogre::Vector3 &p, const Ogre::Vector3 &n, const Ogre::Real u, const Ogre::Real v)
void Vertex (const Ogre::Vector3 &p, const Ogre::ColourValue &c)
void Vertex (const Ogre::Vector3 &p, const Ogre::Real u, const Ogre::Real v, const Ogre::ColourValue &c)
void Vertex (const Ogre::Vector3 &p, const Ogre::Vector3 &n, const Ogre::ColourValue &c)
void Vertex (const Ogre::Vector3 &p, const Ogre::Vector3 &n, const Ogre::Real u, const Ogre::Real v, const Ogre::ColourValue &c)
void Index (const int i)
void Index (const int i, const int j, const int k)
void End ()
void SkipVertices (const size_t iNum=1)
 unused vertices may be skipped even after initialisiation, no reallocation neccessary, just leave some unused buffer-space
void SkipIndices (const size_t iNum=1)
void AddToMesh (Ogre::MeshPtr pMesh, const std::string &sMatName)
void ConvertToMesh (const std::string &sMeshName, const std::string &sMatName)
Ogre::Real * StartCustomWriter (const Ogre::Vector3 &vBoundsMin, const Ogre::Vector3 &vBoundsMax)
void SetVertexFormatFromEnum (const eVertexFormat miVertexFormat, const int iNumTexCoordsSets=1)
Ogre::VertexDeclaration * GetVertexDecl ()
void _StartWrite (const bool bVertexFormatChanged)
 internal method, don't use directly
void _AllocateIndexBufferIfNeeded ()
Ogre::Real * PrepareAddVertex (const eVertexFormat miVertexFormat, const Ogre::Vector3 &p)
 internal method, don't use directly

Static Public Member Functions

static Ogre::Real GetMaxZ ()

Public Attributes

Ogre::Vector3 mvAABMin
Ogre::Vector3 mvAABMax
bool mbBoundingBoxEmpty
Ogre::Real mfBoundingRadius
Ogre::RenderOperation * mpRenderOp
Ogre::AxisAlignedBox * mpBox
size_t miVertexCapacity
size_t miIndexCapacity
size_t miVertexCount
size_t miIndexCount
size_t miVertexSize
bool mbBufferIsDynamic
 todo : only used for vertexbuffer so far
bool mbBufferIsReadable
 todo : only used for vertexbuffer so far
bool mbDynamic
bool mbReadable
bool mbKeepOldIndices
eVertexFormat miVertexFormat
size_t miReceivedVertices
size_t miReceivedIndices
Ogre::RenderSystem * mpRenderSys
char * mVertexWritePtr
unsigned short * mIndexWritePtr
Ogre::HardwareVertexBufferSharedPtr mHWVBuf
Ogre::HardwareIndexBufferSharedPtr mHWIBuf


Detailed Description

Definition at line 37 of file lugre_robrenderable.h.


Member Enumeration Documentation

p:position n:normal uv:texcoords c:color

Enumerator:
kVertexFormat_none 
kVertexFormat_p 
kVertexFormat_puv 
kVertexFormat_pn 
kVertexFormat_pnuv 
kVertexFormat_pc 
kVertexFormat_puvc 
kVertexFormat_pnc 
kVertexFormat_pnuvc 

Definition at line 44 of file lugre_robrenderable.h.


Constructor & Destructor Documentation

Lugre::cRobRenderOp::cRobRenderOp ( Ogre::RenderOperation *  pRenderOp = 0,
Ogre::AxisAlignedBox *  pBox = 0 
)

Definition at line 73 of file lugre_robrenderable.cpp.

References mfBoundingRadius, and mpBox.

Lugre::cRobRenderOp::~cRobRenderOp (  )  [virtual]

Definition at line 79 of file lugre_robrenderable.cpp.

References PROFILE.


Member Function Documentation

void Lugre::cRobRenderOp::Begin ( const size_t  iVertexCount,
const size_t  iIndexCount = 0,
const bool  bDynamic = false,
const bool  bKeepOldIndices = false,
const Ogre::RenderOperation::OperationType  opType = Ogre::RenderOperation::OT_TRIANGLE_LIST,
const bool  bReadable = false 
)

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p  ) 

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Real  u,
const Ogre::Real  v 
)

Definition at line 247 of file lugre_robrenderable.cpp.

References kVertexFormat_puv, and PrepareAddVertex().

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Vector3 &  n 
)

Definition at line 253 of file lugre_robrenderable.cpp.

References kVertexFormat_pn, and PrepareAddVertex().

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Vector3 &  n,
const Ogre::Real  u,
const Ogre::Real  v 
)

Definition at line 260 of file lugre_robrenderable.cpp.

References kVertexFormat_pnuv, and PrepareAddVertex().

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::ColourValue &  c 
)

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Real  u,
const Ogre::Real  v,
const Ogre::ColourValue &  c 
)

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Vector3 &  n,
const Ogre::ColourValue &  c 
)

void Lugre::cRobRenderOp::Vertex ( const Ogre::Vector3 &  p,
const Ogre::Vector3 &  n,
const Ogre::Real  u,
const Ogre::Real  v,
const Ogre::ColourValue &  c 
)

void Lugre::cRobRenderOp::Index ( const int  i  ) 

void Lugre::cRobRenderOp::Index ( const int  i,
const int  j,
const int  k 
)

Definition at line 306 of file lugre_robrenderable.cpp.

References Index().

void Lugre::cRobRenderOp::End (  ) 

void Lugre::cRobRenderOp::SkipVertices ( const size_t  iNum = 1  ) 

unused vertices may be skipped even after initialisiation, no reallocation neccessary, just leave some unused buffer-space

Definition at line 359 of file lugre_robrenderable.cpp.

References miVertexCount, and mpRenderOp.

Referenced by Lugre::cRobRenderable2D_L::RobRenderable2D_SkipVertices(), Lugre::cGfx3D::SetText(), Lugre::cSpriteList::UpdateGeometryClipped(), and Lugre::cColourClipTextOverlay::updatePositionGeometry().

void Lugre::cRobRenderOp::SkipIndices ( const size_t  iNum = 1  ) 

void Lugre::cRobRenderOp::AddToMesh ( Ogre::MeshPtr  pMesh,
const std::string &  sMatName 
)

void Lugre::cRobRenderOp::ConvertToMesh ( const std::string &  sMeshName,
const std::string &  sMatName 
)

Definition at line 370 of file lugre_robrenderable.cpp.

References AddToMesh().

Referenced by Lugre::cRobSimpleRenderable::ConvertToMesh().

Ogre::Real * Lugre::cRobRenderOp::StartCustomWriter ( const Ogre::Vector3 &  vBoundsMin,
const Ogre::Vector3 &  vBoundsMax 
)

if the Vertex() methods above are not enough, and you want to use a custom vertex decl (e.g for multitexturing) you can use GetVertexDecl() to assemble the vertex declaration and this function for writing to the buffers vertex declaration should be modified via GetVertexDecl before this... bVertexFormatChanged : if in doubt, set to true use this after calling Begin(), then write vertex data to the returned pointer (vram) don't forget to call End()

Definition at line 189 of file lugre_robrenderable.cpp.

References _StartWrite(), assert, mbBoundingBoxEmpty, miReceivedVertices, miVertexCount, mpRenderOp, mvAABMax, mvAABMin, and mVertexWritePtr.

void Lugre::cRobRenderOp::SetVertexFormatFromEnum ( const eVertexFormat  miVertexFormat,
const int  iNumTexCoordsSets = 1 
)

a higher level access to the vertex declaration for most cases this should be enough, but if you need lowlevel access, see GetVertexDecl() iNumTexCoordsSets is ignored if the format doesn't include texcoords, only 1 is valid for Vertex() methods, rest is for custom

Definition at line 143 of file lugre_robrenderable.cpp.

References GetVertexDecl(), kVertexFormat_pc, kVertexFormat_pn, kVertexFormat_pnc, kVertexFormat_pnuv, kVertexFormat_pnuvc, kVertexFormat_puv, kVertexFormat_puvc, and miVertexSize.

Referenced by PrepareAddVertex().

Ogre::VertexDeclaration * Lugre::cRobRenderOp::GetVertexDecl (  ) 

low-level access to the vertex declaration see also SetVertexFormatFromEnum for a higher level interface use this to add elements to the vertex-declaration before using StartWrite do this only once per cRobRenderOp instance (clearing old definition not implemented yet)

Definition at line 187 of file lugre_robrenderable.cpp.

References mpRenderOp.

Referenced by _StartWrite(), and SetVertexFormatFromEnum().

void Lugre::cRobRenderOp::_StartWrite ( const bool  bVertexFormatChanged  ) 

void Lugre::cRobRenderOp::_AllocateIndexBufferIfNeeded (  ) 

Definition at line 326 of file lugre_robrenderable.cpp.

References mHWIBuf, miIndexCapacity, miIndexCount, and mpRenderOp.

Referenced by End(), and Index().

Ogre::Real * Lugre::cRobRenderOp::PrepareAddVertex ( const eVertexFormat  miVertexFormat,
const Ogre::Vector3 &  p 
)

Ogre::Real Lugre::cRobRenderOp::GetMaxZ (  )  [static]


Member Data Documentation

Definition at line 57 of file lugre_robrenderable.h.

Referenced by Begin(), PrepareAddVertex(), and StartCustomWriter().

Ogre::RenderOperation* Lugre::cRobRenderOp::mpRenderOp

Ogre::AxisAlignedBox* Lugre::cRobRenderOp::mpBox

Definition at line 60 of file lugre_robrenderable.h.

Referenced by cRobRenderOp(), End(), and Lugre::cBeam::UpdateBeamBounds().

Definition at line 61 of file lugre_robrenderable.h.

Referenced by _StartWrite().

Definition at line 62 of file lugre_robrenderable.h.

Referenced by _AllocateIndexBufferIfNeeded().

Definition at line 64 of file lugre_robrenderable.h.

Referenced by _AllocateIndexBufferIfNeeded(), Begin(), End(), Index(), and SkipIndices().

Definition at line 65 of file lugre_robrenderable.h.

Referenced by _StartWrite(), PrepareAddVertex(), and SetVertexFormatFromEnum().

todo : only used for vertexbuffer so far

Definition at line 66 of file lugre_robrenderable.h.

Referenced by _StartWrite().

todo : only used for vertexbuffer so far

Definition at line 67 of file lugre_robrenderable.h.

Referenced by _StartWrite().

Definition at line 68 of file lugre_robrenderable.h.

Referenced by _StartWrite(), and Begin().

Definition at line 69 of file lugre_robrenderable.h.

Referenced by _StartWrite(), and Begin().

Definition at line 70 of file lugre_robrenderable.h.

Referenced by Begin(), and End().

Definition at line 71 of file lugre_robrenderable.h.

Referenced by PrepareAddVertex().

Definition at line 72 of file lugre_robrenderable.h.

Referenced by Begin(), End(), PrepareAddVertex(), and StartCustomWriter().

Definition at line 73 of file lugre_robrenderable.h.

Referenced by Begin(), End(), and Index().

Ogre::RenderSystem* Lugre::cRobRenderOp::mpRenderSys

Definition at line 74 of file lugre_robrenderable.h.

Referenced by Begin(), and Vertex().

Definition at line 76 of file lugre_robrenderable.h.

Referenced by _StartWrite(), Begin(), End(), PrepareAddVertex(), and StartCustomWriter().

Definition at line 77 of file lugre_robrenderable.h.

Referenced by Begin(), End(), and Index().

Ogre::HardwareVertexBufferSharedPtr Lugre::cRobRenderOp::mHWVBuf

Definition at line 78 of file lugre_robrenderable.h.

Referenced by _StartWrite(), and End().

Ogre::HardwareIndexBufferSharedPtr Lugre::cRobRenderOp::mHWIBuf

Definition at line 79 of file lugre_robrenderable.h.

Referenced by _AllocateIndexBufferIfNeeded(), End(), and Index().


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

Generated on Wed Feb 8 06:00:21 2012 for cpp by  doxygen 1.5.6