Lagrange
SurfaceMesh

Generic surface meshes. More...

Modules

 Attributes
 Manipulating mesh attributes.
 
 Mesh utilities
 Various attribute processing utilities.
 
 Attributes iterators
 Iterating over mesh attributes.
 
 Attributes utilities
 Various attribute processing utilities.
 
 Eigen views
 View mesh attributes as Eigen matrices.
 

Classes

class  SurfaceMesh< Scalar_, Index_ >
 A general purpose polygonal mesh class. More...
 

Macros

#define LA_SURFACE_MESH_X(mode, data)
 X Macro arguments for the SurfaceMesh<> class. More...
 
#define LA_SURFACE_MESH_INDEX_X(mode, data)
 X Macro arguments to iterate over index types available for the SurfaceMesh<> class. More...
 
#define LA_SURFACE_MESH_SCALAR_X(mode, data)
 X Macro arguments to iterate over scalar types available for the SurfaceMesh<> class. More...
 

Typedefs

using SurfaceMesh32f = SurfaceMesh< float, uint32_t >
 
using SurfaceMesh32d = SurfaceMesh< double, uint32_t >
 
using SurfaceMesh64f = SurfaceMesh< float, uint64_t >
 
using SurfaceMesh64d = SurfaceMesh< double, uint64_t >
 

Detailed Description

Generic surface meshes.

Macro Definition Documentation

◆ LA_SURFACE_MESH_X

#define LA_SURFACE_MESH_X (   mode,
  data 
)

#include <lagrange/SurfaceMeshTypes.h>

Value:
LA_X_##mode(data, float, uint32_t) \
LA_X_##mode(data, double, uint32_t) \
LA_X_##mode(data, float, uint64_t) \
LA_X_##mode(data, double, uint64_t)

X Macro arguments for the SurfaceMesh<> class.

Since other modules might need to explicitly instantiate their own functions, this file is a public header.

Use in a .cpp as follows:

#include <lagrange/SurfaceMeshTypes.h>
#define LA_X_foo(_, Scalar, Index) template void my_function(const SurfaceMesh<Scalar, Index> &);
#define LA_SURFACE_MESH_X(mode, data)
X Macro arguments for the SurfaceMesh<> class.
Definition: SurfaceMeshTypes.h:49

The optional data argument can forwarded to other macros, in order to implement cartesian products when instantiating nested types.

Parameters
modeSuffix to apply to the LA_X_* macro.
dataData to be passed around as the first argument of the X macro.
Returns
Expansion of LA_X_##mode() for each type to be instantiated.

◆ LA_SURFACE_MESH_INDEX_X

#define LA_SURFACE_MESH_INDEX_X (   mode,
  data 
)

#include <lagrange/SurfaceMeshTypes.h>

Value:
LA_X_##mode(data, uint32_t) \
LA_X_##mode(data, uint64_t)

X Macro arguments to iterate over index types available for the SurfaceMesh<> class.

Usage is similar to LA_SURFACE_MESH_X, but it will only iterate over each index type once:

#include <lagrange/SurfaceMeshTypes.h>
#define LA_X_foo(_, Index) template void my_function(const Attribute<Index> &facet_indices);
#define LA_SURFACE_MESH_INDEX_X(mode, data)
X Macro arguments to iterate over index types available for the SurfaceMesh<> class.
Definition: SurfaceMeshTypes.h:71
Parameters
modeSuffix to apply to the LA_X_* macro.
dataData to be passed around as the first argument of the X macro.
Returns
Expansion of LA_X_##mode() for each type to be instantiated.

◆ LA_SURFACE_MESH_SCALAR_X

#define LA_SURFACE_MESH_SCALAR_X (   mode,
  data 
)

#include <lagrange/SurfaceMeshTypes.h>

Value:
LA_X_##mode(data, float) \
LA_X_##mode(data, double)

X Macro arguments to iterate over scalar types available for the SurfaceMesh<> class.

Usage is similar to LA_SURFACE_MESH_X, but it will only iterate over each scalar type once:

#include <lagrange/SurfaceMeshTypes.h>
#define LA_X_foo(_, Scalar) template void my_function(const Attribute<Scalar> &vertex_positions);
#define LA_SURFACE_MESH_SCALAR_X(mode, data)
X Macro arguments to iterate over scalar types available for the SurfaceMesh<> class.
Definition: SurfaceMeshTypes.h:91
Parameters
modeSuffix to apply to the LA_X_* macro.
dataData to be passed around as the first argument of the X macro.
Returns
Expansion of LA_X_##mode() for each type to be instantiated.