Felt  3.1
Deformable surface library.
Felt::Polys< TSurface > Class Template Reference

Polygonisation for a spatially partitioned level set surface. More...

#include <Polys.hpp>

Inherits Felt::Impl::Mixin::Partitioned::Children< Polys< TSurface > >.

Public Types

using Child = typename Traits::Child
 Child grid type. More...
 

Public Member Functions

 Polys (const TSurface &surface_)
 
const PosIdxListchanges () const
 Get list of partitions that were updated. More...
 
void invalidate ()
 Add all active poly childs and isogrid childs to change tracking for (re)polygonisation. More...
 
void march ()
 Repolygonise partitions marked as changed since last polygonisation. More...
 
void notify ()
 Notify of an update to the surface in order to track changes. More...
 

Detailed Description

template<class TSurface>
class Felt::Polys< TSurface >

Polygonisation for a spatially partitioned level set surface.

Holds child Poly::Single objects that are dynamically created, updated and destroyed as the surface changes.

Call notify each time the surface is updated to keep track of spatial partitions that need (re)polygonising.

Alternatively call invalidate to mark the whole isogrid for (re)polygonisation.

Call march to go through tracked changes, updating the polygonisation of flagged spatial partitions.

After each march, call changes to get the position indices of partitions that were updated.

Member Typedef Documentation

◆ Child

template<class TSurface >
using Felt::Polys< TSurface >::Child = typename Traits::Child

Child grid type.

Constructor & Destructor Documentation

◆ Polys()

template<class TSurface >
Felt::Polys< TSurface >::Polys ( const TSurface &  surface_)
inline

Member Function Documentation

◆ changes()

template<class TSurface >
const PosIdxList& Felt::Polys< TSurface >::changes ( ) const
inline

Get list of partitions that were updated.

Returns
list of position indices of partitions that were repolygonised in the last march.

◆ invalidate()

template<class TSurface >
void Felt::Polys< TSurface >::invalidate ( )
inline

Add all active poly childs and isogrid childs to change tracking for (re)polygonisation.

◆ march()

template<class TSurface >
void Felt::Polys< TSurface >::march ( )
inline

Repolygonise partitions marked as changed since last polygonisation.

◆ notify()

template<class TSurface >
void Felt::Polys< TSurface >::notify ( )
inline

Notify of an update to the surface in order to track changes.

This should be called whenever the surface is updated to ensure that eventual re-polygonisation only needs to update those spatial partitions that have actually changed.


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