Om  1.0.0
A universal framework for multimedia simulation
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
om::graphics::shapes::GraphicsShape Class Reference

A class that represents an abstract renderable object. More...

#include <omGraphicsShape.h>

Inheritance diagram for om::graphics::shapes::GraphicsShape:
om::graphics::base::Renderable om::graphics::devices::GraphicsContextObject om::graphics::shapes::BoxShape om::graphics::shapes::GridShape om::graphics::shapes::Light om::graphics::shapes::LODShape om::graphics::shapes::MeshShape om::graphics::shapes::SkyBoxShape om::graphics::shapes::SubdivisionShape om::graphics::shapes::TransformControl

Public Member Functions

ShapeTypeID getShapeTypeID () const
 Return an integer identifying the sub type of this shape. More...
 
const ShapeTypegetShapeType () const
 Return a reference to an object representing the type of this Shape. More...
 
Sphere3 getBoundingSphere () const
 Return a bounding sphere for this transformable in its parent coordinate space. More...
 
const AABB3getBoundingBox () const
 Return an axis-aligned bounding box that encompases this entire transformable in its parent coordinate space. More...
 
virtual void updateBoundingBox ()
 Update the shape's bounding box based on its current geometric representation. More...
 
virtual void intersectRay (GraphicsRay &ray) const
 Trace a ray against this shape and compute the closest intersection. More...
 
virtual void testRay (GraphicsRay &ray) const
 Trace a ray against this shape and determine if any intersection exist along the ray. More...
 
- Public Member Functions inherited from om::graphics::base::Renderable
 Renderable ()
 Create a new renderable object with the default renderable flags. More...
 
 Renderable (const RenderableFlags &newFlags)
 Create a new renderable object with the specified renderable flags. More...
 
RenderableFlagsgetFlags ()
 Return a reference to an object that contains boolean parameters of the renderable. More...
 
const RenderableFlagsgetFlags () const
 Return an object that contains boolean parameters of the renderable. More...
 
void setFlags (const RenderableFlags &newFlags)
 Set an object that contains boolean parameters of the renderable. More...
 
Bool flagIsSet (RenderableFlags::Flag flag) const
 Return whether or not the specified boolan flag is set for this renderable. More...
 
Bool flagsAreSet (const RenderableFlags &otherFlags) const
 Return whether or not all of the specified boolan flags are set for this renderable. More...
 
void setFlag (RenderableFlags::Flag flag, Bool newIsSet=true)
 Set whether or not the specified boolan flag is set for this renderable. More...
 
Bool getIsVisible () const
 Get whether or not the renderable and its children are visible in the scene. More...
 
void setIsVisible (Bool newIsVisible)
 Set whether or not the renderable and its children are visible in the scene. More...
 
Bool getShadowsEnabled () const
 Return whether or not this renderable can cast shadows. More...
 
void setShadowsEnabled (Bool newCanCastShadows)
 Set whether or not this renderable can cast shadows. More...
 
virtual void getRenderables (const shapes::RenderRequest &request, const Transform3 &worldTransform, shapes::RenderQueue &outputQueue) const =0
 Process the renderable and add all child renderable objects to the output render queue. More...
 
- Public Member Functions inherited from om::graphics::devices::GraphicsContextObject
virtual ~GraphicsContextObject ()
 Destory this graphics context object. More...
 
GraphicsContextgetContext () const
 Return a pointer to the graphics context this context object is using to do rendering. More...
 
virtual void setContext (GraphicsContext *newContext)
 Set a pointer to the graphics context this context object should use to do rendering. More...
 
void clearContext ()
 Clear the previous context from this object. More...
 
void upload ()
 Upload this resource's CPU representation to the GPU device. More...
 
virtual void upload (UploadRequest &request)
 Upload this resource's CPU representation to the GPU device. More...
 
void download ()
 Upload this resource's CPU representation to the GPU device. More...
 
virtual void download (DownloadRequest &request)
 Download the resource's GPU representation to CPU memory. More...
 
virtual Bool isUploaded () const
 Return whether or not this graphics resource has been successfully created and uploaded to the device. More...
 
virtual Bool isDownloaded () const
 Return whether or not this graphics resource has a copy of its data stored in CPU-side memory. More...
 
virtual Bool isValid () const
 Return whether or not the state of this graphics resource is valid (either on CPU or GPU) and able to be used for rendering. More...
 

Static Public Attributes

static const ResourceType RESOURCE_TYPE
 The resource type for a graphics shape. More...
 

Protected Member Functions

 GraphicsShape (const ShapeType *newType)
 Create a new shape with the specified type. More...
 
void setBoundingBox (const AABB3 &newBoundingBox)
 Set the local axis-aligned bounding box for this shape. More...
 
- Protected Member Functions inherited from om::graphics::devices::GraphicsContextObject
 GraphicsContextObject ()
 Create a new graphics context object that doesn't have an associated graphics context. More...
 
 GraphicsContextObject (GraphicsContext *newContext)
 Create a new graphics context object that uses the specified context for rendering. More...
 

Additional Inherited Members

- Protected Attributes inherited from om::graphics::base::Renderable
RenderableFlags flags
 An object containing boolean configuration flags for this renderable. More...
 
- Protected Attributes inherited from om::graphics::devices::GraphicsContextObject
GraphicsContextcontext
 A pointer to the graphics context this object is using. More...
 

Detailed Description

A class that represents an abstract renderable object.

A shape object contains whatever information is necessary to render it to the screen. Every shape has a transformation which orients it relative to its parent coordinate frame.

Constructor & Destructor Documentation

om::graphics::shapes::GraphicsShape::GraphicsShape ( const ShapeType newType)
inlineprotected

Create a new shape with the specified type.

Member Function Documentation

ShapeTypeID om::graphics::shapes::GraphicsShape::getShapeTypeID ( ) const
inline

Return an integer identifying the sub type of this shape.

const ShapeType& om::graphics::shapes::GraphicsShape::getShapeType ( ) const
inline

Return a reference to an object representing the type of this Shape.

Sphere3 om::graphics::shapes::GraphicsShape::getBoundingSphere ( ) const
inline

Return a bounding sphere for this transformable in its parent coordinate space.

const AABB3& om::graphics::shapes::GraphicsShape::getBoundingBox ( ) const
inline

Return an axis-aligned bounding box that encompases this entire transformable in its parent coordinate space.

virtual void om::graphics::shapes::GraphicsShape::updateBoundingBox ( )
virtual
virtual void om::graphics::shapes::GraphicsShape::intersectRay ( GraphicsRay ray) const
virtual
virtual void om::graphics::shapes::GraphicsShape::testRay ( GraphicsRay ray) const
virtual
void om::graphics::shapes::GraphicsShape::setBoundingBox ( const AABB3 newBoundingBox)
inlineprotected

Set the local axis-aligned bounding box for this shape.

Shape subclasses should call this method to set the bounding box of their geometry in their local coordinate frames.

Member Data Documentation

const ResourceType om::graphics::shapes::GraphicsShape::RESOURCE_TYPE
static

The resource type for a graphics shape.


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