2 #pragma warning(disable : 4251) 27 class TopologicalItem;
29 class LazyFacetedBrepShape;
41 class ShapeAttributes;
44 class IndexedDrawable;
45 struct GeometricInformation;
76 typedef std::shared_ptr<Topo::Shape>
pShape;
78 typedef std::shared_ptr<Topo::MeshShape>
pMesh;
80 typedef std::shared_ptr<Topo::Solid>
pSolid;
81 typedef std::shared_ptr<Topo::Shell>
pShell;
82 typedef std::shared_ptr<Topo::Face>
pFace;
83 typedef std::shared_ptr<Topo::Wire>
pWire;
84 typedef std::shared_ptr<Topo::Edge>
pEdge;
85 typedef std::shared_ptr<Topo::Coedge>
pCoedge;
86 typedef std::shared_ptr<Topo::Vertex>
pVertex;
93 typedef std::shared_ptr<Topo::MeshShape const>
pConstMesh;
126 class AcisElementTool;
130 class AcisVertexTool;
145 class ShapeVariantHandler;
160 static std::map<std::string, ShapeFactory*>
registry;
161 static pShape read(
const std::string& format,
const std::string& data,
int version);
162 static pShape read(
const std::string& format, std::istream& reader);
166 virtual pShape read(
const std::string& data,
int version) = 0;
167 virtual pShape read(std::istream& reader) = 0;
232 public std::enable_shared_from_this<Topo::Shape>
241 virtual ~
Shape(
void);
267 bool hasShapeAttributes()
const;
273 void releaseShapesAttributes();
284 virtual std::shared_ptr<Core::DbgInfo> getDbgInfo()
const;
285 virtual Topo::Shape* clone(
bool deepcopy)
const = 0;
298 virtual void copyFrom(
pConstShape rhs,
bool deepCopy =
true) = 0;
299 virtual bool isSingleFace()
const;
300 virtual bool isSingleWire()
const;
301 virtual bool isSingleEdge()
const;
302 virtual bool isSingleVertex()
const;
303 virtual bool isSolid()
const;
304 virtual bool isClosedSolid()
const;
305 virtual bool isWire()
const;
306 virtual bool isCompound()
const;
307 virtual bool isMesh()
const {
return false; }
309 bool _copy(
const Topo::Shape* rhs,
bool deepCopy =
true);
363 virtual void copyFrom(
pConstMesh rhs,
bool deepCopy =
true) = 0;
371 virtual void getTextureCoordinates(std::vector<Geom::Pnt2d>& textureCoordinates, std::vector<int>& textureIndices)
const = 0;
372 virtual bool calculateDetail(CA_Detail& detail,
const CA_Snap& theSnap) = 0;
373 virtual void getEdges(std::vector<std::pair<Geom::Pnt, Geom::Pnt> >& lines)
const = 0;
374 virtual void getPoints(std::vector<Geom::Pnt>& points)
const = 0;
376 virtual void getOuterBoundaries(std::vector<Geom::Pnt>& points, std::vector<int>& edges)
const = 0;
377 virtual void getFacePoints(
int index, std::vector<Geom::Pnt>& points)
const = 0;
384 void copyFrom(
pConstShape rhs,
bool deepCopy =
true);
403 virtual void copyFrom(
pConstCompound rhs,
bool deepCopy =
true) = 0;
427 virtual ~
Solid(
void);
430 virtual void copyFrom(
pConstSolid rhs,
bool deepCopy =
true) = 0;
448 public std::enable_shared_from_this<Topo::Shell>
457 virtual ~
Shell(
void);
460 virtual void copyFrom(
pConstShell rhs,
bool deepCopy =
true) = 0;
482 public std::enable_shared_from_this<Topo::Face>
497 virtual void copyFrom(
pConstFace rhs,
bool deepCopy =
true) = 0;
519 public std::enable_shared_from_this<Topo::Wire>
531 friend class Acis::AcisWireTool;
533 virtual void copyFrom(
pConstWire rhs,
bool deepCopy =
true) = 0;
534 virtual int getEdgeCount()
const = 0;
535 virtual pConstEdge getEdgeByIndex(
int idx)
const = 0;
537 virtual bool isLoop()
const;
557 public std::enable_shared_from_this<Topo::Edge>
570 virtual void copyFrom(
pConstEdge rhs,
bool deepCopy =
true) = 0;
581 double _passagePntParam;
582 bool _hasPassagePntParam;
595 public std::enable_shared_from_this<Topo::Coedge>
608 virtual void copyFrom(
pConstCoedge rhs,
bool deepCopy =
true) = 0;
620 double _passagePntParam;
621 bool _hasPassagePntParam;
634 public std::enable_shared_from_this<Topo::Vertex>
647 virtual void copyFrom(
pConstVertex rhs,
bool deepCopy =
true) = 0;
702 void setOkay(
bool ok);
740 std::shared_ptr<Topo::SpecialFaceInfo>
info;
776 #define REGISTER_SHAPE_FACTORY(_factoryName_, _shapeFormat_) Topo::ShapeFactory::registry[_shapeFormat_] = (Topo::ShapeFactory*)new _factoryName_(); std::shared_ptr< Topo::Wire const > pConstWire
Definition: Shape.h:98
virtual bool wasCreatedWithProblems() const
Definition: Shape.h:289
std::shared_ptr< Topo::LazyFacetedBrepShape > pLazyFacetedBrepShape
Definition: Shape.h:77
virtual void setWasCreatedWithProblems(bool)
Definition: Shape.h:290
std::shared_ptr< Topo::Solid const > pConstSolid
Definition: Shape.h:95
std::shared_ptr< Topo::Shape > pShape
Definition: Shape.h:76
std::vector< Geom::Pnt > vertices
Definition: Shape.h:736
std::shared_ptr< Topo::Solid > pSolid
Definition: Shape.h:80
std::shared_ptr< Topo::Compound > pCompound
Definition: Shape.h:79
std::vector< long > wire_coordinateIndices
Definition: Shape.h:341
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:405
std::vector< int > MeshModel
Definition: Shape.h:355
Wire(ENTITY *ent)
Definition: Shape.h:541
std::shared_ptr< Base::BaseClass > pBaseClass
Definition: Shape.h:74
TopologicalItem(ENTITY *)
Definition: Shape.h:215
#define TOPO_EXPORT
Definition: topo_defines.h:8
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
ModellingKernel
Definition: Shape.h:196
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Shape.h:91
std::shared_ptr< Topo::Vertex > pVertex
Definition: Shape.h:86
ShapeTessellationMode
Definition: Settings.h:93
CheckShape
Definition: Shape.h:246
std::shared_ptr< Topo::Edge const > pConstEdge
Definition: Shape.h:99
Face(ENTITY *ent)
Definition: Shape.h:503
Edge(ENTITY *ent)
Definition: Shape.h:577
std::unique_ptr< Topo::FacetedShape > uniqueFacetedShape
Definition: Shape.h:116
bool isEqual(const Core::Variant &v1, const Core::Variant &v2, double=1E-06) const
Definition: Shape.h:680
std::unique_ptr< Base::BaseClass > uniqueBaseClass
Definition: Shape.h:103
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:538
virtual ~TopologicalItem(void)
Definition: Shape.h:187
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:431
std::shared_ptr< Topo::TopologicalItem const > pConstTopologicalItem
Definition: Shape.h:90
double radius
Definition: Shape.h:728
std::vector< Geom::Pnt > vertices
Definition: Shape.h:749
std::unique_ptr< Topo::Face > uniqueFace
Definition: Shape.h:111
Core::Settings::ShapeTessellationMode mode
Definition: Shape.h:151
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:649
int index
Definition: Shape.h:751
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:500
std::shared_ptr< Topo::Face const > pConstFace
Definition: Shape.h:97
std::shared_ptr< Topo::LazyFacetedBrepShape const > pConstLazyFacetedBrepShape
Definition: Shape.h:92
pConstTopologicalItem source
Definition: Shape.h:217
std::vector< int > edge_coordinateIndices
Definition: Shape.h:750
std::shared_ptr< Topo::Face > pFace
Definition: Shape.h:82
Geom::Ax2 position
Definition: Shape.h:718
Vertex(ENTITY *ent)
Definition: Shape.h:653
bool isEqual(const Core::Variant &v1, const Core::Variant &v2, double=1E-06) const
Definition: Shape.h:664
Core::Settings::ShapeTessellationQuality quality
Definition: Shape.h:150
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:29
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:573
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:499
std::shared_ptr< Topo::IndexedDrawable > pIndexedDrawable
Definition: Shape.h:87
double radius
Definition: Shape.h:719
LX_CORE_EXPORT Version & version
std::shared_ptr< Topo::Coedge > pCoedge
Definition: Shape.h:85
std::unique_ptr< Topo::Shape > uniqueShape
Definition: Shape.h:105
std::shared_ptr< Topo::Shell > pShell
Definition: Shape.h:81
std::unique_ptr< Topo::Solid > uniqueSolid
Definition: Shape.h:109
T getValue(bool *ok) const
Definition: Variant.h:320
ShapeType
Definition: Shape.h:47
Definition: ShapeAttributes.h:14
virtual Geom::SurfaceType getSurfaceType() const =0
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:650
Geom::SurfaceType getSurfaceType() const
Definition: Shape.h:717
std::shared_ptr< Topo::Shell const > pConstShell
Definition: Shape.h:96
std::unique_ptr< Topo::Shell > uniqueShell
Definition: Shape.h:110
std::vector< IndexedFace > faces
Definition: Shape.h:762
std::unique_ptr< Topo::Coedge > uniqueCoedge
Definition: Shape.h:114
std::shared_ptr< Topo::TopologicalItem > pTopologicalItem
Definition: Shape.h:75
BaseClass class and root of the type system.
Definition: Base.h:92
std::shared_ptr< const Geom::BrepData > pConstBrepData
Definition: BrepData.h:37
MD5 BASE_EXPORT createMD5(const std::string &filename)
int getType()
Definition: Shape.h:688
virtual ENTITY * getEntity() const
Definition: Shape.h:210
std::shared_ptr< Geom::IndexedMesh > pIndexedMesh
Definition: IndexedMesh.h:59
std::shared_ptr< Base::BaseClass const > pConstBaseClass
Definition: Shape.h:89
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:287
OrientationType
Definition: Shape.h:63
std::unique_ptr< Topo::Compound > uniqueCompound
Definition: Shape.h:107
std::shared_ptr< Topo::MeshShape > pMesh
Definition: Shape.h:78
std::vector< int > coordinateIndices
Definition: Shape.h:738
Shell(ENTITY *ent)
Definition: Shape.h:464
MesherType
Definition: Shape.h:189
Definition: Variant.h:153
std::shared_ptr< Topo::Coedge const > pConstCoedge
Definition: Shape.h:100
bool globalMeshMode
Definition: Shape.h:152
std::vector< Geom::Dir > verticesNormals
Definition: Shape.h:737
std::unique_ptr< Topo::Wire > uniqueWire
Definition: Shape.h:112
std::unique_ptr< Topo::Edge > uniqueEdge
Definition: Shape.h:113
std::shared_ptr< Topo::Vertex const > pConstVertex
Definition: Shape.h:101
std::vector< MeshModel > SubMeshModels
Definition: Shape.h:356
Coedge(ENTITY *ent)
Definition: Shape.h:616
Definition: Variant.h:154
std::shared_ptr< Topo::Compound const > pConstCompound
Definition: Shape.h:94
std::vector< Geom::Pnt > face_vertices
Definition: Shape.h:336
SurfaceType
Definition: GeomEnums.h:26
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:461
std::unique_ptr< Topo::Vertex > uniqueVertex
Definition: Shape.h:115
std::shared_ptr< Topo::Wire > pWire
Definition: Shape.h:83
GEOM_EXPORT Point getPoint(const Geom::Pnt &p)
ShapeTessellationQuality
Definition: Settings.h:84
TopologicalItem()
Definition: Shape.h:186
Definition: IndexedMesh.h:14
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:404
std::shared_ptr< Topo::SpecialFaceInfo > info
Definition: Shape.h:740
int index
Definition: Shape.h:739
std::unique_ptr< Topo::TopologicalItem > uniqueTopologicalItem
Definition: Shape.h:104
double angle
Definition: Shape.h:727
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:81
std::vector< Geom::Dir > face_per_vertex_normals
Definition: Shape.h:338
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:536
Solid(ENTITY *ent)
Definition: Shape.h:434
std::shared_ptr< Topo::MeshShape const > pConstMesh
Definition: Shape.h:93
std::vector< long > face_coordinateIndices
Definition: Shape.h:337
Geom::Ax2 position
Definition: Shape.h:726
std::vector< Geom::Pnt > wire_vertices
Definition: Shape.h:340
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:613
std::unique_ptr< Topo::ShapeSet > uniqueShapeSet
Definition: Shape.h:108
std::set< Core::DocObject * > m_appGeometryBackLinks
Definition: Shape.h:253
int getType()
Definition: Shape.h:672
Base::String fileName
Definition: CoreDocument.h:161
static std::map< std::string, ShapeFactory * > registry
Definition: Shape.h:160
virtual void transform(const Geom::Trsf &)
Definition: Shape.h:611
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:574
std::unique_ptr< Topo::MeshShape > uniqueMesh
Definition: Shape.h:106
virtual bool getGeometricInformation(Topo::GeometricInformation &) const
Definition: Shape.h:378
Compound(ENTITY *ent)
Definition: Shape.h:408
std::vector< IndexedEdge > edges
Definition: Shape.h:763
Definition: DocObject.h:28
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:80
virtual bool isMesh() const
Definition: Shape.h:307
std::shared_ptr< Topo::Edge > pEdge
Definition: Shape.h:84
Geom::SurfaceType getSurfaceType() const
Definition: Shape.h:725