Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

RayGina::CORE::RobMesh Class Reference

#include <RobMesh.hxx>

Inheritance diagram for RayGina::CORE::RobMesh:

RayGina::CORE::RobBase RayGina::CORE::RObject List of all members.

Public Member Functions

virtual const RExtensiongetInstanceExtension () const
 RobMesh ()
 empty contrcutor, DON'T KNOWN IF THATS A GOOD IDEA!?!?!?
 RobMesh (const RUInt32 numberOfTriangles, const RUInt32 numberOfVertices)
 ~RobMesh ()
const RBool intersect (RRay *ray)
 dummy function that always returns false => no intersection
const RBool occlude (const RRay *ray)
 dummy function that always returns false => not occluded
const RBool getRenderObjects (RobAccelerator *renderlist)
 adds several objects to the list that describe the geometry or the instance itself on simple objects
const RStatus importOBJ (RString objFilename)
bool isEmpty () const
 returns true if the mesh contains triangles
const RStatus setNumberOfVertices (const RUInt32 newNumberOfVertices)
const RStatus setNumberOfTriangles (const RUInt32 newNumberOfTriangles)
RUInt32 getNumberOfTriangles () const
 return the number of triangles in mesh
RUInt32 getNumberOfVertices () const
 return the number of verticies in mesh
const RVec3ugetTriangleIndicies (const RUInt32 i) const
 return the number of verticies in mesh
const RVec3u getTriangle (const RUInt32 i) const
const RUInt32 getNumberOfSurfaceShaders () const
const RStatus setNumberOfSurfaceShaders (const RUInt32 newSize)
RssBasegetSurfaceShader (const RUInt32 index) const
const RStatus setSurfaceShader (const RUInt32 index, RssBase *newShader)
void setSurfaceShaderList (RUInt32 newNumberOfSurfaceShaders, RssBase **newSurfaceShaderList)
const RStatus setTriangleSurfaceShaderRange (const RUInt8 shaderNumber, const RUInt32 startTriangle, const RUInt32 endTriangle)
const RStatus setTriangleSurfaceShader (const RUInt8 shaderNumber, const RUInt32 triangle)
RssBasegetSurfaceShaderForTriangle (const RUInt32 triangleNumber) const
const RUInt32 getNumberOfVolumeShaders () const
const RStatus setVolumeShaderList (RUInt32 newNumberOfVolumeShaders, RvsBase **newVolumeShaderList)
const RStatus setTriangleVolumeShaderRange (RUInt8 shaderNumber, RUInt32 startTriangle, RUInt32 endTriangle)
const RStatus setTriangleVolumeShader (RUInt8 shaderNumber, RUInt32 triangle)
RvsBasegetVolumeShaderForTriangle (RUInt32 triangleNumber)
const RVec3f getVertex (const RUInt32 i) const
 return the i-th vertex
const RStatus setVertex (RUInt32 i, RVec3f newVertex)
void setTriangle (RUInt32 i, RUInt32 x, RUInt32 y, RUInt32 z)
const RStatus setTriangle (RUInt32 i, RVec3u triVec)
RobTrianglegetRobTriangle (RUInt32 i) const
void getRobTriangle (RUInt32 i, RobTriangle *triangle) const
const RStatus setNumberOfNormals (RUInt newNumberOfNormals, RBool initilize=true)
const RUInt getNumberOfNormals () const
const RStatus setNormal (RUInt normalIndex, RVec3f newNormal)
RVec3f getNormal (RUInt32 normalIndex) const
const RStatus setNumberOfNormalIndizes (RUInt newNumberOfNormals, RBool initilize=true)
const RUInt getNumberOfNormalIndizes () const
const RStatus setTriangleNormalIndizes (RUInt32 triangleNumber, RVec3u newNormals)
RVec3u getTriangleNormalIndizes (RUInt32 triangleNumber) const
const RStatus setNumberOfUVs (RUInt32 newNumberOfUVs, RBool initilize=true)
const RStatus setUV (RUInt32 uvNumber, RVec2f newUV)
RVec2f getUV (RUInt32 uvNumber) const
const RStatus setTriangleUV (RUInt32 triangleNumber, RVec3u newUVs)
RVec3u getUVIndexForTriangle (RUInt32 triangleNumber) const
void clear ()
 emtyp the mesh

Static Public Member Functions

RExtension__getExtension ()
const RStatus _initialize (RatStaticContainer *attributes)
const RStatus _setVerticesAttr (RObject *myMesh, const RVec3f value, const RUInt32 index)
const RVec3f _getVerticesAttr (const RObject *myMesh, const RUInt32 index, RRenderCom *)
const RStatus _setVerticesSizeAttr (RObject *myMesh, const RUInt32 newSize)
const RUInt32 _getVerticesSizeAttr (const RObject *myMesh)
const RStatus _setNormalsAttr (RObject *myMesh, const RVec3f value, const RUInt32 index)
const RVec3f _getNormalsAttr (const RObject *myMesh, const RUInt32 index, RRenderCom *)
const RStatus _setNormalsSizeAttr (RObject *myMesh, const RUInt32 newSize)
const RUInt32 _getNormalsSizeAttr (const RObject *myMesh)
const RStatus _setNormalIndexAttr (RObject *myMesh, const RVec3u value, const RUInt32 index)
const RVec3u _getNormalIndexAttr (const RObject *myMesh, const RUInt32 index, RRenderCom *)
const RStatus _setNormalIndexSizeAttr (RObject *myMesh, const RUInt32 newSize)
const RUInt32 _getNormalIndexSizeAttr (const RObject *myMesh)
const RStatus _setTrianglesAttr (RObject *myMesh, const RVec3u value, const RUInt32 index)
const RVec3u _getTrianglesAttr (const RObject *myMesh, const RUInt32 index, RRenderCom *)
const RStatus _setTrianglesSizeAttr (RObject *myMesh, const RUInt32 newSize)
const RUInt32 _getTrianglesSizeAttr (const RObject *myMesh)
const RStatus _setShadersAttr (RObject *myMesh, RObject *value, const RUInt32 index)
RObject_getShadersAttr (const RObject *myMesh, const RUInt32 index, RRenderCom *)
const RStatus _setShadersSizeAttr (RObject *myMesh, const RUInt32 newSize)
const RUInt32 _getShadersSizeAttr (const RObject *myMesh)

Static Private Member Functions

RObject_createInstance ()

Private Attributes

RUInt32 _numberOfUVs
RList< RVec3u_triangles
RList< RVec3f_vertices
RList< RVec3u_normalIndex
RList< RVec3f_normals
RVec3u_uvIndex
RVec2f_uvs
RUInt8_surfaceShaderIndex
RList< RssBase * > _surfaceShaders
RUInt8_volumeShaderIndex
RList< RvsBase * > _volumeShaders

Static Private Attributes

RExtension _extensionData

Constructor & Destructor Documentation

RayGina::CORE::RobMesh::RobMesh  )  [inline]
 

empty contrcutor, DON'T KNOWN IF THATS A GOOD IDEA!?!?!?

Definition at line 148 of file RobMesh.hxx.

RayGina::CORE::RobMesh::RobMesh const RUInt32  numberOfTriangles,
const RUInt32  numberOfVertices
[inline]
 

Definition at line 150 of file RobMesh.hxx.

RayGina::CORE::RobMesh::~RobMesh  )  [inline]
 

Definition at line 152 of file RobMesh.hxx.


Member Function Documentation

RExtension* RayGina::CORE::RobMesh::__getExtension  )  [inline, static]
 

Definition at line 40 of file RobMesh.hxx.

RObject* RayGina::CORE::RobMesh::_createInstance  )  [inline, static, private]
 

Definition at line 19 of file RobMesh.hxx.

const RVec3u RayGina::CORE::RobMesh::_getNormalIndexAttr const RObject myMesh,
const RUInt32  index,
RRenderCom
[inline, static]
 

Definition at line 92 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::_getNormalIndexSizeAttr const RObject myMesh  )  [inline, static]
 

Definition at line 100 of file RobMesh.hxx.

const RVec3f RayGina::CORE::RobMesh::_getNormalsAttr const RObject myMesh,
const RUInt32  index,
RRenderCom
[inline, static]
 

Definition at line 75 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::_getNormalsSizeAttr const RObject myMesh  )  [inline, static]
 

Definition at line 83 of file RobMesh.hxx.

RObject* RayGina::CORE::RobMesh::_getShadersAttr const RObject myMesh,
const RUInt32  index,
RRenderCom
[inline, static]
 

Definition at line 126 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::_getShadersSizeAttr const RObject myMesh  )  [inline, static]
 

Definition at line 134 of file RobMesh.hxx.

const RVec3u RayGina::CORE::RobMesh::_getTrianglesAttr const RObject myMesh,
const RUInt32  index,
RRenderCom
[inline, static]
 

Definition at line 109 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::_getTrianglesSizeAttr const RObject myMesh  )  [inline, static]
 

Definition at line 117 of file RobMesh.hxx.

const RVec3f RayGina::CORE::RobMesh::_getVerticesAttr const RObject myMesh,
const RUInt32  index,
RRenderCom
[inline, static]
 

Definition at line 58 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::_getVerticesSizeAttr const RObject myMesh  )  [inline, static]
 

Definition at line 66 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_initialize RatStaticContainer attributes  )  [inline, static]
 

Definition at line 43 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setNormalIndexAttr RObject myMesh,
const RVec3u  value,
const RUInt32  index
[inline, static]
 

Definition at line 88 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setNormalIndexSizeAttr RObject myMesh,
const RUInt32  newSize
[inline, static]
 

Definition at line 96 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setNormalsAttr RObject myMesh,
const RVec3f  value,
const RUInt32  index
[inline, static]
 

Definition at line 71 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setNormalsSizeAttr RObject myMesh,
const RUInt32  newSize
[inline, static]
 

Definition at line 79 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setShadersAttr RObject myMesh,
RObject value,
const RUInt32  index
[inline, static]
 

Definition at line 122 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setShadersSizeAttr RObject myMesh,
const RUInt32  newSize
[inline, static]
 

Definition at line 130 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setTrianglesAttr RObject myMesh,
const RVec3u  value,
const RUInt32  index
[inline, static]
 

Definition at line 105 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setTrianglesSizeAttr RObject myMesh,
const RUInt32  newSize
[inline, static]
 

Definition at line 113 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setVerticesAttr RObject myMesh,
const RVec3f  value,
const RUInt32  index
[inline, static]
 

Definition at line 54 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::_setVerticesSizeAttr RObject myMesh,
const RUInt32  newSize
[inline, static]
 

Definition at line 62 of file RobMesh.hxx.

void RayGina::CORE::RobMesh::clear  )  [inline]
 

emtyp the mesh

Definition at line 705 of file RobMesh.hxx.

virtual const RExtension* RayGina::CORE::RobMesh::getInstanceExtension  )  const [inline, virtual]
 

returns the RExtension for the instance If it returns NULL this instance is not able to act as an extension

Implements RayGina::CORE::RObject.

Definition at line 37 of file RobMesh.hxx.

RVec3f RayGina::CORE::RobMesh::getNormal RUInt32  normalIndex  )  const [inline]
 

Definition at line 532 of file RobMesh.hxx.

const RUInt RayGina::CORE::RobMesh::getNumberOfNormalIndizes  )  const [inline]
 

Definition at line 566 of file RobMesh.hxx.

const RUInt RayGina::CORE::RobMesh::getNumberOfNormals  )  const [inline]
 

Definition at line 517 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::getNumberOfSurfaceShaders  )  const [inline]
 

return the list of all surface-shaders used in the mesh Attention: This function may return a NULL-pointer so check!!! in returnNumberOfSurfaceShaders you will get the number of shaders

Definition at line 235 of file RobMesh.hxx.

RUInt32 RayGina::CORE::RobMesh::getNumberOfTriangles  )  const [inline]
 

return the number of triangles in mesh

Definition at line 206 of file RobMesh.hxx.

RUInt32 RayGina::CORE::RobMesh::getNumberOfVertices  )  const [inline]
 

return the number of verticies in mesh

Definition at line 210 of file RobMesh.hxx.

const RUInt32 RayGina::CORE::RobMesh::getNumberOfVolumeShaders  )  const [inline]
 

return the list of all surface-shaders used in the mesh Attention: This function may return a NULL-pointer so check!!! in returnNumberOfSurfaceShaders you will get the number of shaders

Definition at line 340 of file RobMesh.hxx.

const RBool RobMesh::getRenderObjects RobAccelerator renderlist  )  [virtual]
 

adds several objects to the list that describe the geometry or the instance itself on simple objects

This method is for complex objects, compound objects or objects that needs a tesselation for efficient rayTracing It adds a representation of the object in the list by using one or more other geometries. Example: A tessalation of a NURBS-patch could add lots of triangles which approximate the NURBS-patch

Implements RayGina::CORE::RobBase.

Definition at line 29 of file RobMesh.cxx.

void RayGina::CORE::RobMesh::getRobTriangle RUInt32  i,
RobTriangle triangle
const [inline]
 

Definition at line 489 of file RobMesh.hxx.

RobTriangle* RayGina::CORE::RobMesh::getRobTriangle RUInt32  i  )  const [inline]
 

returns a RobTriangle Be aware that this created RobTrinagle has nothing to do with the RobMesh This function just creates the instance and set the values. You have to cleanuo this by your own!

Definition at line 486 of file RobMesh.hxx.

RssBase* RayGina::CORE::RobMesh::getSurfaceShader const RUInt32  index  )  const [inline]
 

Definition at line 243 of file RobMesh.hxx.

RssBase* RayGina::CORE::RobMesh::getSurfaceShaderForTriangle const RUInt32  triangleNumber  )  const [inline]
 

Definition at line 322 of file RobMesh.hxx.

const RVec3u RayGina::CORE::RobMesh::getTriangle const RUInt32  i  )  const [inline]
 

Definition at line 218 of file RobMesh.hxx.

const RVec3u& RayGina::CORE::RobMesh::getTriangleIndicies const RUInt32  i  )  const [inline]
 

return the number of verticies in mesh

Definition at line 214 of file RobMesh.hxx.

RVec3u RayGina::CORE::RobMesh::getTriangleNormalIndizes RUInt32  triangleNumber  )  const [inline]
 

Definition at line 593 of file RobMesh.hxx.

RVec2f RayGina::CORE::RobMesh::getUV RUInt32  uvNumber  )  const [inline]
 

Definition at line 655 of file RobMesh.hxx.

RVec3u RayGina::CORE::RobMesh::getUVIndexForTriangle RUInt32  triangleNumber  )  const [inline]
 

Definition at line 688 of file RobMesh.hxx.

const RVec3f RayGina::CORE::RobMesh::getVertex const RUInt32  i  )  const [inline]
 

return the i-th vertex

Definition at line 420 of file RobMesh.hxx.

RvsBase* RayGina::CORE::RobMesh::getVolumeShaderForTriangle RUInt32  triangleNumber  )  [inline]
 

Definition at line 405 of file RobMesh.hxx.

const RStatus RobMesh::importOBJ RString  objFilename  ) 
 

Definition at line 81 of file RobMesh.cxx.

const RBool RayGina::CORE::RobMesh::intersect RRay ray  )  [inline, virtual]
 

dummy function that always returns false => no intersection

Implements RayGina::CORE::RobBase.

Definition at line 166 of file RobMesh.hxx.

bool RayGina::CORE::RobMesh::isEmpty  )  const [inline]
 

returns true if the mesh contains triangles

Definition at line 182 of file RobMesh.hxx.

const RBool RayGina::CORE::RobMesh::occlude const RRay ray  )  [inline, virtual]
 

dummy function that always returns false => not occluded

Implements RayGina::CORE::RobBase.

Definition at line 171 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNormal RUInt  normalIndex,
RVec3f  newNormal
[inline]
 

Definition at line 521 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfNormalIndizes RUInt  newNumberOfNormals,
RBool  initilize = true
[inline]
 

Definition at line 547 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfNormals RUInt  newNumberOfNormals,
RBool  initilize = true
[inline]
 

Definition at line 498 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfSurfaceShaders const RUInt32  newSize  )  [inline]
 

Definition at line 239 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfTriangles const RUInt32  newNumberOfTriangles  )  [inline]
 

Definition at line 199 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfUVs RUInt32  newNumberOfUVs,
RBool  initilize = true
[inline]
 

Definition at line 609 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setNumberOfVertices const RUInt32  newNumberOfVertices  )  [inline]
 

Definition at line 193 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setSurfaceShader const RUInt32  index,
RssBase newShader
[inline]
 

Definition at line 250 of file RobMesh.hxx.

void RayGina::CORE::RobMesh::setSurfaceShaderList RUInt32  newNumberOfSurfaceShaders,
RssBase **  newSurfaceShaderList
[inline]
 

Definition at line 261 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangle RUInt32  i,
RVec3u  triVec
[inline]
 

Definition at line 461 of file RobMesh.hxx.

void RayGina::CORE::RobMesh::setTriangle RUInt32  i,
RUInt32  x,
RUInt32  y,
RUInt32  z
[inline]
 

Definition at line 436 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleNormalIndizes RUInt32  triangleNumber,
RVec3u  newNormals
[inline]
 

Definition at line 570 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleSurfaceShader const RUInt8  shaderNumber,
const RUInt32  triangle
[inline]
 

Definition at line 317 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleSurfaceShaderRange const RUInt8  shaderNumber,
const RUInt32  startTriangle,
const RUInt32  endTriangle
[inline]
 

Definition at line 286 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleUV RUInt32  triangleNumber,
RVec3u  newUVs
[inline]
 

Definition at line 665 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleVolumeShader RUInt8  shaderNumber,
RUInt32  triangle
[inline]
 

Definition at line 401 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setTriangleVolumeShaderRange RUInt8  shaderNumber,
RUInt32  startTriangle,
RUInt32  endTriangle
[inline]
 

Definition at line 370 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setUV RUInt32  uvNumber,
RVec2f  newUV
[inline]
 

Definition at line 644 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setVertex RUInt32  i,
RVec3f  newVertex
[inline]
 

Definition at line 423 of file RobMesh.hxx.

const RStatus RayGina::CORE::RobMesh::setVolumeShaderList RUInt32  newNumberOfVolumeShaders,
RvsBase **  newVolumeShaderList
[inline]
 

Definition at line 344 of file RobMesh.hxx.


Member Data Documentation

RExtension RobMesh::_extensionData [static, private]
 

Initial value:

 RExtension(RExtension::SUPERCLASSID_PRIMITIVE,
                                                                                                                                RExtension::CLASSID_CORE_ROB_MESH,
                                                                                                                                1,
                                                                                                                                1,
                                                                                                                                "Mesh",
                                                                                                                                "RobMesh",
                                                                                                                                "rayGina::CORE::Team",
                                                                                                                                "core@raygina.de",
                                                                                                                                "www.raygina.de",
                                                                                                                                RobMesh::_createInstance,
                                                                                                                                RobMesh::_initialize)

Definition at line 16 of file RobMesh.cxx.

RList<RVec3u> RayGina::CORE::RobMesh::_normalIndex [private]
 

Definition at line 26 of file RobMesh.hxx.

RList<RVec3f> RayGina::CORE::RobMesh::_normals [private]
 

Definition at line 27 of file RobMesh.hxx.

RUInt32 RayGina::CORE::RobMesh::_numberOfUVs [private]
 

Definition at line 23 of file RobMesh.hxx.

RUInt8* RayGina::CORE::RobMesh::_surfaceShaderIndex [private]
 

Definition at line 30 of file RobMesh.hxx.

RList<RssBase*> RayGina::CORE::RobMesh::_surfaceShaders [private]
 

Definition at line 31 of file RobMesh.hxx.

RList<RVec3u> RayGina::CORE::RobMesh::_triangles [private]
 

Definition at line 24 of file RobMesh.hxx.

RVec3u* RayGina::CORE::RobMesh::_uvIndex [private]
 

Definition at line 28 of file RobMesh.hxx.

RVec2f* RayGina::CORE::RobMesh::_uvs [private]
 

Definition at line 29 of file RobMesh.hxx.

RList<RVec3f> RayGina::CORE::RobMesh::_vertices [private]
 

Definition at line 25 of file RobMesh.hxx.

RUInt8* RayGina::CORE::RobMesh::_volumeShaderIndex [private]
 

Definition at line 32 of file RobMesh.hxx.

RList<RvsBase*> RayGina::CORE::RobMesh::_volumeShaders [private]
 

Definition at line 33 of file RobMesh.hxx.


The documentation for this class was generated from the following files:
Generated on Sun Dec 2 17:01:11 2007 for rayGina by  doxygen 1.3.9.1