Om
1.0.0
A universal framework for multimedia simulation
|
A class that provides a simple means to draw a 3D sphere shape. More...
#include <omGraphicsSphereShape.h>
Public Member Functions | |
SphereShape () | |
Create a sphere shape centered at the origin with a radius of 1. More... | |
SphereShape (Real radius) | |
Create a sphere shape centered at the origin with the specified radius. More... | |
SphereShape (Real radius, const Vector3 &newPosition) | |
Create a sphere shape with the specified position and radius. More... | |
const Vector3 & | getPosition () const |
Return the position of this sphere's center in local coordinates. More... | |
void | setPosition (const Vector3 &newPosition) |
Set the position of this sphere's center in local coordinates. More... | |
Real | getRadius () const |
Return the radius of this sphere shape in local coordinates. More... | |
void | setRadius (Real newRadius) |
Set the radius of this sphere shape in local coordinates. More... | |
Material * | getMaterial () const |
Return a pointer to the material of this sphere shape. More... | |
void | setMaterial (Material *newMaterial) |
Set a pointer to the material of this sphere shape. More... | |
ConstantSet * | getConstants () const |
Return an object that describes a set of shader constants and their corresponding semantic usages for this shape. More... | |
void | setConstants (ConstantSet *newConstants) |
Set an object that describes a set of shader constants and their corresponding semantic usages for this shape. More... | |
TextureSet * | getTextures () const |
Return an object that describes a set of textures and their corresponding semantic usages for this shape. More... | |
void | setTextures (TextureSet *newTextures) |
Set an object that describes a set of textures and their corresponding semantic usages for this shape. More... | |
virtual void | updateBoundingBox () |
Update the sphere's axis-aligned bounding box. 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::shapes::SubdivisionShape | |
SubdivisionShape (const SubdivisionShape &other) | |
Create a copy of another subdivision shape. More... | |
~SubdivisionShape () | |
Destroy a subdivision shape, releasing all internal resources. More... | |
SubdivisionShape & | operator= (const SubdivisionShape &other) |
Assign the state of another subdivision shape to this one. More... | |
Real | getLODBias () const |
Get a value that multiplicatively biases the size of a pixel radius query. More... | |
void | setLODBias (Real newLODBias) |
Set a value that multiplicatively biases the size of a pixel radius query. More... | |
virtual void | setContext (devices::GraphicsContext *newContext) |
Change the graphics context that is used to create this subdivision shape. More... | |
virtual void | upload (UploadRequest &request) |
Upload this subdivision shape's current CPU representation to the GPU device. More... | |
virtual void | download (DownloadRequest &request) |
Download the subdivision shape's GPU representation to CPU memory. More... | |
virtual void | getRenderables (const RenderRequest &request, const Transform3 &worldTransform, RenderQueue &outputQueue) const |
Process the renderable and add all child renderable objects to the output render queue. More... | |
Public Member Functions inherited from om::graphics::shapes::GraphicsShape | |
ShapeTypeID | getShapeTypeID () const |
Return an integer identifying the sub type of this shape. More... | |
const ShapeType & | getShapeType () 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 AABB3 & | getBoundingBox () const |
Return an axis-aligned bounding box that encompases this entire transformable in its parent coordinate space. 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... | |
RenderableFlags & | getFlags () |
Return a reference to an object that contains boolean parameters of the renderable. More... | |
const RenderableFlags & | getFlags () 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... | |
Public Member Functions inherited from om::graphics::devices::GraphicsContextObject | |
virtual | ~GraphicsContextObject () |
Destory this graphics context object. More... | |
GraphicsContext * | getContext () const |
Return a pointer to the graphics context this context object is using 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... | |
void | download () |
Upload this resource's CPU representation to the GPU device. 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 ShapeType | TYPE |
A shape type object that represents the type to use for a sphere shape. More... | |
Static Public Attributes inherited from om::graphics::shapes::GraphicsShape | |
static const ResourceType | RESOURCE_TYPE |
The resource type for a graphics shape. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from om::graphics::shapes::SubdivisionShape | |
SubdivisionShape (const ShapeType *newShapeType) | |
Create a subdivision shape for the specified shape type. More... | |
void | clearSubdivisions () |
Clear all previously-generated subdivisions for this subdivision shape. More... | |
Size | getSubdivisionCount () const |
Return the number of subdivisions there are in this shape. More... | |
Subdivision * | getSubdivision (Index subdivisionLevel) const |
Return a pointer to the subdivision in this shape for the specified level. More... | |
GraphicsShape * | getSubdivisionForPixelRadius (Real pixelRadius) const |
Return the shape which should be used when the shape has the specified screen-space radius. More... | |
Protected Member Functions inherited from om::graphics::shapes::GraphicsShape | |
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... | |
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 | |
GraphicsContext * | context |
A pointer to the graphics context this object is using. More... | |
A class that provides a simple means to draw a 3D sphere shape.
A sphere is specified by a position and radius.
This class handles all vertex and index buffer generation automatically, simplifying the visualization of spheres, such as for collision geometry. Internally, this class automatically chooses the proper geometric level of detail for the sphere representation in order to acheive nearly pixel-perfect accuracy when rendering from any perspective.
om::graphics::shapes::SphereShape::SphereShape | ( | ) |
Create a sphere shape centered at the origin with a radius of 1.
om::graphics::shapes::SphereShape::SphereShape | ( | Real | radius | ) |
Create a sphere shape centered at the origin with the specified radius.
Create a sphere shape with the specified position and radius.
|
inline |
Return the position of this sphere's center in local coordinates.
|
inline |
Set the position of this sphere's center in local coordinates.
|
inline |
Return the radius of this sphere shape in local coordinates.
void om::graphics::shapes::SphereShape::setRadius | ( | Real | newRadius | ) |
Set the radius of this sphere shape in local coordinates.
The radius is clamed to the range of [0,+infinity).
|
inline |
Return a pointer to the material of this sphere shape.
void om::graphics::shapes::SphereShape::setMaterial | ( | Material * | newMaterial | ) |
Set a pointer to the material of this sphere shape.
|
inline |
Return an object that describes a set of shader constants and their corresponding semantic usages for this shape.
void om::graphics::shapes::SphereShape::setConstants | ( | ConstantSet * | newConstants | ) |
Set an object that describes a set of shader constants and their corresponding semantic usages for this shape.
|
inline |
Return an object that describes a set of textures and their corresponding semantic usages for this shape.
void om::graphics::shapes::SphereShape::setTextures | ( | TextureSet * | newTextures | ) |
Set an object that describes a set of textures and their corresponding semantic usages for this shape.
|
virtual |
Update the sphere's axis-aligned bounding box.
Reimplemented from om::graphics::shapes::GraphicsShape.
|
virtual |
Trace a ray against this shape and compute the closest intersection.
Reimplemented from om::graphics::shapes::SubdivisionShape.
|
virtual |
Trace a ray against this shape and determine if any intersection exist along the ray.
Reimplemented from om::graphics::shapes::SubdivisionShape.
|
static |
A shape type object that represents the type to use for a sphere shape.