summaryrefslogtreecommitdiff
path: root/inc/IGESSelect_SelectBasicGeom.hxx
blob: 43f15a23ff0d369304821b539f0050b8cbca0601 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _IGESSelect_SelectBasicGeom_HeaderFile
#define _IGESSelect_SelectBasicGeom_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IGESSelect_SelectBasicGeom_HeaderFile
#include <Handle_IGESSelect_SelectBasicGeom.hxx>
#endif

#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _IFSelect_SelectExplore_HeaderFile
#include <IFSelect_SelectExplore.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_Standard_Transient_HeaderFile
#include <Handle_Standard_Transient.hxx>
#endif
#ifndef _Handle_IGESData_IGESEntity_HeaderFile
#include <Handle_IGESData_IGESEntity.hxx>
#endif
class Standard_Transient;
class Interface_Graph;
class Interface_EntityIterator;
class TCollection_AsciiString;
class IGESData_IGESEntity;


//! This selection returns the basic geometric elements <br>
//!           contained in an IGES Entity <br>
//!           Intended to run a "quick" transfer. I.E. : <br>
//!           - for a Group, considers its Elements <br>
//!           - for a Trimmed or Bounded Surface or a Face (BREP), <br>
//!             considers the 3D curves of each of its loops <br>
//!           - for a Plane (108), considers its Bounding Curve <br>
//!           - for a Curve itself, takes it <br>
//! <br>
//!           Also, FREE surfaces are taken, because curve 3d is known for <br>
//!           them. (the ideal should be to have their natural bounds) <br>
//! <br>
//!           If <curvesonly> is set, ONLY curves-3d are returned <br>
class IGESSelect_SelectBasicGeom : public IFSelect_SelectExplore {

public:

  //! Creates a SelectBasicGeom, which allways works recursively <br>
//!           mode = -1 : Returns Surfaces (without trimming) <br>
//!           mode = +1 : Returns Curves 3D (free or bound of surface) <br>
//!           mode = +2 : Returns Basic Curves 3D : as 1 but CompositeCurves <br>
//!                        are returned in detail <br>
//!           mode = 0  : both <br>
  Standard_EXPORT   IGESSelect_SelectBasicGeom(const Standard_Integer mode);
  
  Standard_EXPORT     Standard_Boolean CurvesOnly() const;
  //! Explores an entity, to take its contained Curves 3d <br>
//!           Works recursively <br>
  Standard_EXPORT     Standard_Boolean Explore(const Standard_Integer level,const Handle(Standard_Transient)& ent,const Interface_Graph& G,Interface_EntityIterator& explored) const;
  //! Returns a text defining the criterium : "Curves 3d" or <br>
//!           "Basic Geometry" <br>
  Standard_EXPORT     TCollection_AsciiString ExploreLabel() const;
  //! This method can be called from everywhere to get the curves <br>
//!           as sub-elements of a given curve : <br>
//!           CompositeCurve : explored lists its subs + returns True <br>
//!           Any Curve : explored is not filled but returned is True <br>
//!           Other : returned is False <br>
  Standard_EXPORT   static  Standard_Boolean SubCurves(const Handle(IGESData_IGESEntity)& ent,Interface_EntityIterator& explored) ;




  DEFINE_STANDARD_RTTI(IGESSelect_SelectBasicGeom)

protected:




private: 


Standard_Integer thegeom;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif