Fixed: PrevHalfedge is optinal again

This commit is contained in:
Daniel Savchenko
2023-08-18 16:03:07 +02:00
parent 4b997fd7da
commit 676b4d2aae
3 changed files with 23 additions and 7 deletions

View File

@@ -97,6 +97,7 @@ struct ArrayItems
//TODO: should be selected with config.h define
typedef Halfedge_with_prev Halfedge;
typedef Halfedge_without_prev HalfedgeNoPrev;
typedef GenProg::Bool2Type<true> HasPrevHalfedge;
//-------------------------------------------------------- internal edge type

View File

@@ -75,10 +75,30 @@ public:
//---------------------------------------------------------------- item types
enum Attribs {
VAttribs = MeshItems::VAttribs,
HAttribs = MeshItems::HAttribs,
EAttribs = MeshItems::EAttribs,
FAttribs = MeshItems::FAttribs
};
typedef MeshItems MeshItemsT;
typedef Connectivity ConnectivityT;
typedef typename Connectivity::Vertex Vertex;
typedef typename Connectivity::Halfedge Halfedge;
//Define Halfedge based on PrevHalfedge.
typedef typename GenProg::IF<
(bool)(HAttribs & Attributes::PrevHalfedge),
typename Connectivity::Halfedge,
typename Connectivity::HalfedgeNoPrev
>::Result Halfedge;
typedef typename GenProg::IF<
(bool)(HAttribs & Attributes::PrevHalfedge),
GenProg::Bool2Type<true>,
GenProg::Bool2Type<false>
>::Result HasPrevHalfedge;
//typedef typename Connectivity::Halfedge Halfedge;
typedef typename Connectivity::Edge Edge;
typedef typename Connectivity::Face Face;
@@ -98,12 +118,6 @@ public:
typedef AttribKernelT<MeshItems,Connectivity> AttribKernel;
enum Attribs {
VAttribs = MeshItems::VAttribs,
HAttribs = MeshItems::HAttribs,
EAttribs = MeshItems::EAttribs,
FAttribs = MeshItems::FAttribs
};
typedef VPropHandleT<VertexData> DataVPropHandle;
typedef HPropHandleT<HalfedgeData> DataHPropHandle;