Sirikata
|
This class syncs Ogre::Meshes from the hardware and does ray intersection tests. More...
#include <OgreMeshRaytrace.hpp>
Public Member Functions | |
void | intersect (Ogre::Node *node, const Ogre::Ray &ray, IntersectResult &res) |
OgreMesh (Ogre::SubMesh *submesh, bool texcoord, std::vector< TriVertex > &sharedVertices) | |
int64 | size () const |
Static Public Member Functions | |
static Ogre::Ray | transformRay (Ogre::Node *entity, const Ogre::Ray &original) |
static bool | intersectTri (const Ogre::Ray &ray, IntersectResult &rtn, Triangle *itr, bool plane) |
Protected Member Functions | |
void | syncFromOgreMesh (Ogre::SubMesh *mSubMesh, bool texcoord, std::vector< TriVertex > &sharedVertices) |
Protected Attributes | |
std::vector< Triangle > | mTriangles |
This class syncs Ogre::Meshes from the hardware and does ray intersection tests.
Sirikata::Graphics::OgreMesh::OgreMesh | ( | Ogre::SubMesh * | submesh, |
bool | texcoord, | ||
std::vector< TriVertex > & | sharedVertices | ||
) |
References syncFromOgreMesh().
void Sirikata::Graphics::OgreMesh::intersect | ( | Ogre::Node * | node, |
const Ogre::Ray & | ray, | ||
IntersectResult & | res | ||
) |
References Sirikata::Graphics::TriVertex::coord, Sirikata::Graphics::IntersectResult::intersected, intersectTri(), mTriangles, position, Sirikata::Graphics::IntersectResult::tri, Sirikata::Graphics::Triangle::v1, Sirikata::Graphics::Triangle::v2, and Sirikata::Graphics::Triangle::v3.
Referenced by Sirikata::Graphics::OgreSystem::internalRayTrace(), and intersectTri().
bool Sirikata::Graphics::OgreMesh::intersectTri | ( | const Ogre::Ray & | ray, |
IntersectResult & | rtn, | ||
Triangle * | itr, | ||
bool | plane | ||
) | [static] |
References Sirikata::Graphics::TriVertex::coord, Sirikata::Graphics::IntersectResult::distance, intersect(), Sirikata::Graphics::IntersectResult::intersected, Sirikata::intersects(), Sirikata::Graphics::IntersectResult::normal, Sirikata::Graphics::IntersectResult::tri, Sirikata::Graphics::TriVertex::u, Sirikata::Graphics::IntersectResult::u, Sirikata::Graphics::TriVertex::v, Sirikata::Graphics::IntersectResult::v, Sirikata::Graphics::Triangle::v1, Sirikata::Graphics::Triangle::v2, and Sirikata::Graphics::Triangle::v3.
Referenced by intersect().
int64 Sirikata::Graphics::OgreMesh::size | ( | ) | const |
References mTriangles.
void Sirikata::Graphics::OgreMesh::syncFromOgreMesh | ( | Ogre::SubMesh * | mSubMesh, |
bool | texcoord, | ||
std::vector< TriVertex > & | sharedVertices | ||
) | [protected] |
References mTriangles.
Referenced by OgreMesh().
Ogre::Ray Sirikata::Graphics::OgreMesh::transformRay | ( | Ogre::Node * | entity, |
const Ogre::Ray & | original | ||
) | [static] |
References position.
Referenced by Sirikata::Graphics::OgreSystem::internalRayTrace().
std::vector<Triangle> Sirikata::Graphics::OgreMesh::mTriangles [protected] |
Referenced by intersect(), size(), and syncFromOgreMesh().