56#ifndef OPENMESH_GENPROG_HH
57#define OPENMESH_GENPROG_HH
62#include <OpenMesh/Core/System/config.h>
70#ifndef DOXY_IGNORE_THIS
76template <
bool b>
struct Bool2Type {
enum { my_bool = b }; };
79template <
int i>
struct Int2Type {
enum { my_int = i }; };
82typedef Bool2Type<true> TrueType;
85typedef Bool2Type<false> FalseType;
89template <
bool Expr>
struct AssertCompile;
90template <>
struct AssertCompile<true> {};
95#if OM_PARTIAL_SPECIALIZATION
98template <
bool condition,
class Then,
class Else>
99struct IF {
typedef Then Result; };
106template <
class Then,
class Else>
107struct IF<false, Then, Else> {
typedef Else Result; };
119 template <
class Then,
class Else>
struct Select {
126 template <
class Then,
class Else>
struct Select {
131template <
bool condition>
struct ChooseSelector {
132 typedef SelectThen Result;
135template <>
struct ChooseSelector<false> {
136 typedef SelectElse Result;
146template <
bool condition,
class Then,
class Else>
149 typedef typename ChooseSelector<condition>::Result Selector;
151 typedef typename Selector::template Select<Then, Else>::Result Result;
161#define assert_compile(EXPR) GenProg::AssertCompile<(EXPR)>();
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition MeshItems.hh:64