This is the documentation for Enlighten.

class Geo RtMeshGroup

class Geo::RtMeshGroup

    └>Geo::IRtMesh
        └>Geo::IGeoReleasable

A ray tracing mesh that is a collection of other meshes.

You can construct a ray tracing scene by creating one of these, and adding other IRtMesh to it. Note that inputs are passed in as reference counted pointers, so bare pointers will be released when this object goes out of scope. If you are holding IRtMesh pointers in your object, store them as Geo::GeoRefReleasePtr also...

Functions

Name Description
AddMesh(Geo::GeoRefReleasePtr< IRtMesh >)

Add a mesh to the group.

Create()

Creates an RtMeshGroup.

GetNumRtTriangles()

Returns how many triangles in the mesh.

GetNumRtTriangles()

Returns how many triangles in the mesh.

GetNumRtVertices()

Returns how many vertices in the mesh.

GetNumRtVertices()

Returns how many vertices in the mesh.

NonCopyable(NonCopyable &&)

Defaulted to allow move.

operator=(NonCopyable &&)

Defaulted to allow move.

Release()

Free this object that was created within the Enlighten libraries.

Release()

Free this object that was created within the Enlighten libraries.

SetRayTracingOffset(Geo::GeoPoint3)

Set the ray tracing offset.

VisitRtMesh(Geo::EmbreeRtMeshVisitor &)

Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.

VisitRtMesh(EmbreeRtMeshVisitor &)

Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.


void Geo::RtMeshGroup::AddMesh


public: void AddMesh
(
    Geo::GeoRefReleasePtr< IRtMesh > mesh
)


Add a mesh to the group.


static RtMeshGroup* Geo::RtMeshGroup::Create


public: RtMeshGroup * Create()


Creates an RtMeshGroup.


virtual Geo::s32 Geo::RtMeshGroup::GetNumRtTriangles


public: virtual Geo::s32 GetNumRtTriangles() const


Returns how many triangles in the mesh.


virtual Geo::s32 Geo::IRtMesh::GetNumRtTriangles


public: Geo::s32 GetNumRtTriangles() const


Returns how many triangles in the mesh.


virtual Geo::s32 Geo::RtMeshGroup::GetNumRtVertices


public: virtual Geo::s32 GetNumRtVertices() const


Returns how many vertices in the mesh.


virtual Geo::s32 Geo::IRtMesh::GetNumRtVertices


public: Geo::s32 GetNumRtVertices() const


Returns how many vertices in the mesh.


Geo::NonCopyable::NonCopyable


public: NonCopyable
(
    NonCopyable &&
)


Defaulted to allow move.


NonCopyable& Geo::NonCopyable::operator=


public: NonCopyable & operator=
(
    NonCopyable &&
)


Defaulted to allow move.


virtual void Geo::RtMeshGroup::Release


public: virtual void Release()


Free this object that was created within the Enlighten libraries.

Expect this to behave in a similar way to calling 'delete(this)'


virtual void Geo::IGeoReleasable::Release


public: void Release()


Free this object that was created within the Enlighten libraries.

Expect this to behave in a similar way to calling 'delete(this)'


void Geo::RtMeshGroup::SetRayTracingOffset


public: void SetRayTracingOffset
(
    Geo::GeoPoint3 meshCentre
)


Set the ray tracing offset.

All vertex positions will have this offset subtracted before being passed to ray tracing acceleration structure creation. Typically, we want to move the mesh centre to the origin so that the rays of interest are traced with greatest floating-point precision.


virtual void Geo::RtMeshGroup::VisitRtMesh


public: virtual void VisitRtMesh
(
    Geo::EmbreeRtMeshVisitor & visitor
) const


Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.


virtual void Geo::IRtMesh::VisitRtMesh


public: void VisitRtMesh
(
    EmbreeRtMeshVisitor & visitor
) const


Calls methods on the given RtMeshVisitor for each vertex and triangle in the mesh.