29 #ifndef __OgreManualObject_H__
30 #define __OgreManualObject_H__
124 virtual void clear(
void);
133 virtual void estimateVertexCount(
size_t vcount);
142 virtual void estimateIndexCount(
size_t icount);
153 virtual void begin(
const String& materialName,
174 virtual void beginUpdate(
size_t sectionIndex);
182 virtual void position(
const Vector3& pos);
191 virtual void normal(
const Vector3& norm);
202 virtual void tangent(
const Vector3& tan);
214 virtual void textureCoord(
Real u);
216 virtual void textureCoord(
Real u,
Real v);
222 virtual void textureCoord(
const Vector2& uv);
224 virtual void textureCoord(
const Vector3& uvw);
226 virtual void textureCoord(
const Vector4& xyzw);
247 virtual void index(
uint32 idx);
268 virtual size_t getCurrentVertexCount()
const;
271 virtual size_t getCurrentIndexCount()
const;
277 virtual ManualObjectSection* end(
void);
313 void setUseIdentityProjection(
bool useIdentityProjection);
335 void setUseIdentityView(
bool useIdentityView);
359 ManualObjectSection* getSection(
unsigned int index)
const;
363 unsigned int getNumSections(
void)
const;
383 const String& getMovableType(
void)
const;
387 Real getBoundingRadius(
void)
const;
393 bool hasEdgeList(
void);
395 ShadowRenderableListIterator getShadowVolumeRenderableIterator(
398 bool extrudeVertices,
Real extrusionDist,
unsigned long flags = 0);
437 void getWorldTransforms(
Matrix4* xform)
const;
459 bool createSeparateLightCap,
bool isLightCap =
false);
462 void getWorldTransforms(
Matrix4* xform)
const;
476 bool debugRenderables =
false);
539 virtual void resetTempAreas(
void);
541 virtual void resizeTempVertexBufferIfNeeded(
size_t numVerts);
543 virtual void resizeTempIndexBufferIfNeeded(
size_t numInds);
546 virtual void copyTempVertexToBuffer(
void);
562 const String& getType(
void)
const;
A viewpoint from which the scene will be rendered.
Class encapsulating a standard 4x4 homogeneous matrix.
bool getKeepDeclarationOrder() const
Gets whether or not the declaration order is to be kept or not.
virtual bool getDynamic() const
Gets whether this object is marked as dynamic.
float Real
Software floating point type.
void setKeepDeclarationOrder(bool keepOrder)
Sets whether or not to keep the original declaration order when queuing the renderables.
vector< ManualObjectSection * >::type SectionList
uint32 * mTempIndexBuffer
System-memory buffer whilst we establish the size required.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Class providing a much simplified interface to generating manual objects with custom geometry...
const String & getMaterialName(void) const
Retrieve the material name in use.
size_t mEstVertexCount
Estimated vertex count.
Class representing colour.
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
static String DEFAULT_RESOURCE_GROUP_NAME
Default resource group name.
bool getUseIdentityProjection(void) const
Returns whether or not to use an 'identity' projection.
ushort mTexCoordIndex
Current texture coordinate.
Shared pointer implementation used to share vertex buffers.
A 3D box aligned with the x/y/z axes.
bool mAnyIndexed
Any indexed geometry on any sections?
const String & getMaterialGroup(void) const
Retrieve the material group in use.
Interface definition for a factory class which produces a certain kind of MovableObject, and can be registered with Root in order to allow all clients to produce new instances of this object, integrated with the standard Ogre processing.
Abstract class defining a movable object in a scene.
bool mKeepDeclarationOrder
Keep declaration order or let the queue optimize it.
HardwareVertexBufferSharedPtr getPositionBuffer(void)
Temporary vertex structure.
Abstract class defining the interface all renderable objects must implement.
void setBoundingBox(const AxisAlignedBox &box)
Sets the bounding box.
HardwareVertexBufferSharedPtr mWBuffer
TempVertex mTempVertex
Temp storage.
Shared pointer implementation used to share index buffers.
Representation of a dynamic light source in the scene.
size_t mEstIndexCount
Estimated index count.
ShadowTechnique
An enumeration of broad shadow techniques.
#define OGRE_MAX_TEXTURE_COORD_SETS
Define number of texture coordinate sets allowed per vertex.
void set32BitIndices(bool n32)
Set whether we need 32-bit indices.
Real mRadius
Bounding sphere.
bool get32BitIndices() const
Get whether we need 32-bit indices.
Built, renderable section of geometry.
AxisAlignedBox mAABB
Bounding box.
ManualObjectSection * mCurrentSection
Current section.
Class which represents the renderable aspects of a set of shadow volume faces.
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
HardwareVertexBufferSharedPtr getWBuffer(void)
Standard 2-dimensional vector.
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
bool mTempVertexPending
Temp vertex data to copy?
bool mUseIdentityView
Whether to use identity view for sections.
size_t mTempIndexSize
System memory allocation size, in bytes.
bool mFirstVertex
First vertex indicator.
Standard 3-dimensional vector.
bool getUseIdentityView(void) const
Returns whether or not to use an 'identity' view.
Summary class collecting together vertex source information.
Factory object for creating ManualObject instances.
'New' rendering operation using vertex buffers.
static String FACTORY_TYPE_NAME
HardwareVertexBufferSharedPtr mPositionBuffer
bool mUseIdentityProjection
Whether to use identity projection for sections.
bool mCurrentUpdating
Are we updating?
RenderOperation mRenderOperation
ShadowRenderableList mShadowRenderables
List of shadow renderables.
SectionList mSectionList
List of subsections.
char * mTempVertexBuffer
System-memory buffer whilst we establish the size required.
Class to manage the scene object rendering queue.
This class contains the information required to describe the edge connectivity of a given set of vert...
size_t mTempVertexSize
System memory allocation size, in bytes.
A list of triangles, 3 vertices per triangle.
4-dimensional homogeneous vector.
Nested class to allow shadows.
size_t mDeclSize
Current declaration vertex size.
OperationType
The rendering operation type to perform.
EdgeData * mEdgeList
Edge list, used if stencil shadow casting is enabled.
virtual void setDynamic(bool dyn)
Use before defining geometry to indicate that you intend to update the geometry regularly and want th...