15 #ifndef __IPSDKGEOMETRY_MESHWITHHOLES3D_H__ 16 #define __IPSDKGEOMETRY_MESHWITHHOLES3D_H__ 20 #pragma warning (push) 21 #pragma warning (disable : 4251) 23 #include <IPSDKGeometry/Entity/3d/BaseTypedGeometryEntity3d.h> 24 #include <IPSDKGeometry/Entity/3d/Mesh/Mesh3d.h> 27 #include <boost/enable_shared_from_this.hpp> 28 #include <boost/shared_ptr.hpp> 29 #include <boost/weak_ptr.hpp> 40 public boost::enable_shared_from_this<MeshWithHoles3d<T> >
72 typedef std::vector<MeshWithHolesPtr>
MeshColl;
123 ipUInt64 getNbExteriorVertices()
const;
126 ipUInt64 getNbExteriorEdges()
const;
129 ipUInt64 getNbExteriorTriangles()
const;
132 inline const MeshType& getExteriorMesh()
const;
138 inline bool hasHoles()
const;
156 void clearMeshHoles();
176 template <
typename T>
180 return g_coordinateSystem3dType;
183 template <
typename T>
187 return g_entity3dType;
190 template <
typename T>
194 return _exteriorMesh.getMesh3dType();
197 template <
typename T>
201 return _pParent.lock();
204 template <
typename T>
211 template <
typename T>
212 IPSDK_FORCEINLINE
bool 215 return _exteriorMesh.isEmpty();
232 template <
typename T>
236 return static_cast<ipUInt64>(_meshHoles.size());
239 template <
typename T>
240 IPSDK_FORCEINLINE
bool 243 return _meshHoles.empty() ==
false;
260 template <
typename T>
264 return _meshHoles.begin();
267 template <
typename T>
271 return _meshHoles.end();
280 #pragma warning (pop) 282 #endif // __IPSDKGEOMETRY_MESHWITHHOLES3D_H__ eCoordinateSystem3dType getCoordinateSystem3dType() const
method allowing to retrieve coordinate system 3d type
Definition: MeshWithHoles3d.h:178
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
eCoordinateSystem3dType
Enumerate describing coordinate system 3d type.
Definition: GeometryEntity3dTypes.h:74
MeshColl::iterator HoleIterator
iterator to collection of polygons
Definition: MeshWithHoles3d.h:75
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
#define IPSDK_DECLARE_GEOMETRY_ENTITY_3D(libraryName, className)
Macro allowing to declare a geometry entity 3d.
Definition: GeometryEntity3dHdrMacros.h:131
HoleIterator endHole()
iterator used to parse mesh holes
Definition: MeshWithHoles3d.h:269
MeshType _exteriorMesh
exterior mesh
Definition: MeshWithHoles3d.h:167
Basic operators used for mesh with holes 3d management.
boost::shared_ptr< MeshWithHolesType > MeshWithHolesPtr
shared pointer to mesh with holes
Definition: MeshWithHoles3d.h:60
MeshWithHoles3d< T > MeshWithHolesType
mesh with holes type associated to object
Definition: MeshWithHoles3d.h:57
void setParent(const MeshWithHolesConstPtr &pParent)
set parent mesh of instance
Definition: MeshWithHoles3d.h:206
HoleIterator beginHole()
iterator used to parse mesh holes
Definition: MeshWithHoles3d.h:262
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
std::vector< MeshWithHolesConstPtr > MeshConstColl
collection of const mesh
Definition: MeshWithHoles3d.h:69
eEntity3dType
Enumerate describing entity 3d type.
Definition: GeometryEntity3dTypes.h:38
ipUInt64 getNbHoles() const
method allowing to retrieve number of holes associated to mesh
Definition: MeshWithHoles3d.h:234
const eMesh3dType & getMesh3dType() const
retrieve mesh 3d type
Definition: MeshWithHoles3d.h:192
boost::shared_ptr< const MeshWithHolesType > MeshWithHolesConstPtr
shared pointer to const mesh with holes
Definition: MeshWithHoles3d.h:63
eEntity3dType getEntity3dType() const
method allowing to retrieve entity 3d type
Definition: MeshWithHoles3d.h:185
Mesh.
Definition: GeometryEntity3dTypes.h:58
bool hasHoles() const
method allowing to check whether mesh has holes
Definition: MeshWithHoles3d.h:241
Closed mesh associated to a triangulated boundary.
Definition: Mesh3d.h:43
bool isEmpty() const
method allowing to check whether mesh is empty
Definition: MeshWithHoles3d.h:213
Utility functions associated to mesh with holes 3d management.
Base class for typed 3d geometry entities.
Definition: BaseTypedGeometryEntity3d.h:27
Closed mesh potentially associated to interior mesh holes.
Definition: MeshWithHoles3d.h:39
eMesh3dType
Enumerate describing mesh type.
Definition: Mesh3dTypes.h:35
Cartesian coordinate system.
Definition: GeometryEntity3dTypes.h:76
boost::weak_ptr< const MeshWithHolesType > MeshWithHolesConstWeakPtr
weak pointer to mesh with holes
Definition: MeshWithHoles3d.h:66
MeshWithHolesConstWeakPtr _pParent
parent mesh associated to instance
Definition: MeshWithHoles3d.h:164
Mesh3d< T > MeshType
mesh type associated to object
Definition: MeshWithHoles3d.h:54
MeshWithHolesConstPtr getParent() const
retrieve parent mesh of instance
Definition: MeshWithHoles3d.h:199
MeshColl _meshHoles
collection of interior mesh holes
Definition: MeshWithHoles3d.h:170
boost::enable_if< typename boost::mpl::and_< typename boost::is_same< boost::mpl::int_< AttributeType::g_attributeType >, boost::mpl::int_< eAttributeType::eAT_DataItem > >::type, typename boost::is_same< boost::mpl::int_< LeafCollType::g_itemType >, boost::mpl::int_< eDataItemType::eDIT_LeafColl > >::type >::type, RulePtr >::type isEmpty(const boost::shared_ptr< AttributeType > &pAttribute)
functions allowing to check that a leaf collection is empty
Definition: LeafCollSizeRuleOperators.h:65
std::vector< MeshWithHolesPtr > MeshColl
collection of mesh
Definition: MeshWithHoles3d.h:72