NDEVR
API Documentation
TriangleIterator< t_dims, t_type >

A class to easily iterate each triangle over a Geometry of triangles or meshes. More...

Inheritance diagram for TriangleIterator< t_dims, t_type >:
[legend]
Collaboration diagram for TriangleIterator< t_dims, t_type >:
[legend]

Public Member Functions

 TriangleIterator ()
 Default constructor creating an empty iterator.
 TriangleIterator (PrimitiveProperty primitive_property, const StringView &vertex_property, Geometry mesh)
 Constructs a triangle iterator using a named custom vertex property.
 TriangleIterator (PrimitiveProperty primitive_property, VertexProperty vertex_property, Geometry mesh)
 Constructs a triangle iterator from a geometry's primitive and vertex properties.
Vector< 3, BitFlagflag (uint04 index) const
 Retrieves the vertex flags for all three vertices of a triangle.
template<class t_tri_type>
Triangle< t_dims, t_tri_type > get (uint04 index) const
 Retrieves the triangle at the given index.
Triangle< t_dims, t_type > operator[] (uint04 index) const
 Array-style access to a triangle.
uint04 size () const
 Returns the number of triangle primitives available.
Vector< 3, uint04vertexIndex (uint04 index) const
 Returns the local vertex indices (offset-adjusted) for a triangle.

Protected Member Functions

Vector< 3, uint04rawIndex (uint04 index) const
 Returns raw (non-offset-adjusted) vertex indices for a triangle primitive.

Protected Attributes

TableColumnm_flag_column
 Pointer to the vertex flag column (may be nullptr).
uint04 m_primitive_count
 The number of triangle primitives.
Geometry::OptimizedPrimitiveDef m_primitive_def
 Pre-computed primitive definition for fast access.
TableColumnm_vertex_column
 Pointer to the vertex data column.
uint04 m_vertex_offset
 The vertex offset in the shared table.

Detailed Description

template<uint01 t_dims, class t_type>
class TriangleIterator< t_dims, t_type >

A class to easily iterate each triangle over a Geometry of triangles or meshes.


Definition at line 2736 of file Geometry.h.

Constructor & Destructor Documentation

◆ TriangleIterator() [1/2]

template<uint01 t_dims, class t_type>
TriangleIterator< t_dims, t_type >::TriangleIterator ( PrimitiveProperty primitive_property,
VertexProperty vertex_property,
Geometry mesh )
inline

Constructs a triangle iterator from a geometry's primitive and vertex properties.

Parameters
[in]primitive_propertyThe primitive property containing triangle indices.
[in]vertex_propertyThe vertex property containing position data.
[in]meshThe geometry to iterate over.

Definition at line 2749 of file Geometry.h.

References e_triangle_strip, m_flag_column, m_primitive_count, m_primitive_def, m_vertex_column, and m_vertex_offset.

◆ TriangleIterator() [2/2]

template<uint01 t_dims, class t_type>
TriangleIterator< t_dims, t_type >::TriangleIterator ( PrimitiveProperty primitive_property,
const StringView & vertex_property,
Geometry mesh )
inline

Constructs a triangle iterator using a named custom vertex property.

Parameters
[in]primitive_propertyThe primitive property containing triangle indices.
[in]vertex_propertyThe name of the vertex property column.
[in]meshThe geometry to iterate over.

Definition at line 2763 of file Geometry.h.

References e_triangle_strip, m_flag_column, m_primitive_count, m_primitive_def, m_vertex_column, and m_vertex_offset.

Member Function Documentation

◆ flag()

template<uint01 t_dims, class t_type>
Vector< 3, BitFlag > TriangleIterator< t_dims, t_type >::flag ( uint04 index) const
inline

Retrieves the vertex flags for all three vertices of a triangle.

Parameters
[in]indexThe triangle primitive index.
Returns
A 3-component vector of BitFlag values.

Definition at line 2815 of file Geometry.h.

References BitFlag, flag(), m_flag_column, and rawIndex().

Referenced by flag().

◆ get()

template<uint01 t_dims, class t_type>
template<class t_tri_type>
Triangle< t_dims, t_tri_type > TriangleIterator< t_dims, t_type >::get ( uint04 index) const
inline

Retrieves the triangle at the given index.

Parameters
[in]indexThe triangle primitive index.
Returns
The triangle with vertex data resolved from the column.

Definition at line 2777 of file Geometry.h.

References IsInvalid(), m_vertex_column, and rawIndex().

Referenced by operator[]().

◆ operator[]()

template<uint01 t_dims, class t_type>
Triangle< t_dims, t_type > TriangleIterator< t_dims, t_type >::operator[] ( uint04 index) const
inline

Array-style access to a triangle.

Parameters
[in]indexThe triangle primitive index.
Returns
The triangle at the given index.

Definition at line 2794 of file Geometry.h.

References get().

◆ rawIndex()

template<uint01 t_dims, class t_type>
Vector< 3, uint04 > TriangleIterator< t_dims, t_type >::rawIndex ( uint04 index) const
inlineprotected

Returns raw (non-offset-adjusted) vertex indices for a triangle primitive.

Parameters
[in]indexThe triangle primitive index.
Returns
A 3-component vector of raw vertex indices.

Definition at line 2835 of file Geometry.h.

References m_primitive_def, and Geometry::OptimizedGetPrimitiveVec().

Referenced by flag(), get(), and vertexIndex().

◆ size()

template<uint01 t_dims, class t_type>
uint04 TriangleIterator< t_dims, t_type >::size ( ) const
inline

Returns the number of triangle primitives available.

Returns
The triangle count.

Definition at line 2827 of file Geometry.h.

References m_primitive_count.

◆ vertexIndex()

template<uint01 t_dims, class t_type>
Vector< 3, uint04 > TriangleIterator< t_dims, t_type >::vertexIndex ( uint04 index) const
inline

Returns the local vertex indices (offset-adjusted) for a triangle.

Parameters
[in]indexThe triangle primitive index.
Returns
A 3-component vector of local vertex indices.

Definition at line 2802 of file Geometry.h.

References IsValid(), m_vertex_offset, and rawIndex().


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