16 class ShapeTesselator;
17 class ShapeTesselator_OCC;
18 class ShapeTesselator_Acis;
20 class TriangleData_OCC;
21 class TriangleData_Acis;
26 class ShapeTesselator_Acis;
27 class TriangleData_Acis;
38 class SurfaceStyleAssignment;
56 friend class Mesher::ShapeTesselator;
57 friend class Mesher::ShapeTesselator_OCC;
58 friend class MesherAcis::ShapeTesselator_Acis;
59 friend class Mesher::TriangleData;
60 friend class Mesher::TriangleData_OCC;
61 friend class MesherAcis::TriangleData_Acis;
62 friend class Part::SnapPointTool;
81 static pFace makeCylindricalFace(
const Geom::Circ& aCircle,
double aParam1,
double aParam2,
double aHeight);
84 static pFace makePlanarFace(
pWire outerWire,
const std::vector<pWire>& innerWires,
double precision);
93 static pFace makePolygon(
const std::vector<Geom::Pnt>& points);
105 static std::vector<pConstWire> getInnerBoundaries(
pConstFace face);
107 static pShape makeConnectedFaceSet(
const std::vector<int>& model,
const std::vector<Geom::Pnt>& vertices);
114 static bool extendFace(
pFace face,
const std::vector<pConstEdge>& edges,
double offset);
118 static bool getCylinderSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& radius);
120 static bool getConeSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& angle,
double& radius);
128 static bool isSelfIntersecting(
pConstFace face);
130 static void getOuterBoundaryPoints(
pConstFace face, std::vector<Geom::Pnt>& pnts);
132 static void getOuterBoundaryPointsFast(
pConstFace face, std::vector<Geom::Pnt>& pnts);
138 static std::shared_ptr<Topo::SpecialFaceInfo> getSpecialFaceInfo(
pConstFace face);
144 static bool isRectangular(
pConstFace face,
Geom::Ax2& position,
double& width,
double& height);
152 #ifndef LXAPI // INTERFACES BELOW ARE -NOT- PART OF THE LEXOCAD API 156 static void __setDefaultFaceTool__(
Topo::FaceTool* tool) { _defaultTool = tool; }
161 static bool getTopoDS_Face(
pConstFace face, TopoDS_Face& topoFace);
164 virtual pFace _makeFace(
pWire outer,
double precision);
165 virtual pFace _makeFace(
pWire outerWire,
const std::vector<pWire>& innerWires,
double precision);
166 virtual pFace _makePolygon(
const std::vector<Geom::Pnt>& points);
171 virtual bool _getTopoDS_Face(
pConstFace face, TopoDS_Face& topoFace);
173 virtual std::vector<pConstWire> _getInnerBoundaries(
pConstFace face);
174 virtual pShape _makeConnectedFaceSet(
const std::vector<int>& model,
const std::vector<Geom::Pnt>& vertices);
176 virtual bool _extendFace(
pFace face,
const std::vector<pConstEdge>& edges,
double offset);
177 virtual bool _getCylinderSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& radius);
178 virtual bool _getConeSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& angle,
double& radius);
181 virtual bool _projectPointOnFace(
const Geom::Pnt& p,
pConstFace face,
double& u,
double& v);
182 virtual bool _isSelfIntersecting(
pConstFace face);
183 virtual pFace _makePlanarFace(
pWire outerWire,
const std::vector<pWire>& innerWires,
double precision);
184 virtual pFace _makePlanarFaceWithoutVoids(
const std::vector<pWire>& wires,
double precision);
186 virtual void _getOuterBoundaryPoints(
pConstFace face, std::vector<Geom::Pnt>& pnts);
187 virtual void _getOuterBoundaryPointsFast(
pConstFace face, std::vector<Geom::Pnt>& pnts);
190 virtual bool _createTextureCoordinates(
pConstFace face,
192 const App::SurfaceStyleAssignment* ssa,
193 std::vector<Geom::Pnt2d>& coord);
std::shared_ptr< Topo::Wire const > pConstWire
Definition: Shape.h:98
#define TOPO_EXPORT
Definition: topo_defines.h:8
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
static const double linear_Resolution()
Definition: Precision.h:26
Definition: FaceTool.h:24
std::shared_ptr< Topo::Face const > pConstFace
Definition: Shape.h:97
std::shared_ptr< Topo::Face > pFace
Definition: Shape.h:82
std::shared_ptr< const Geom::BrepData > pConstBrepData
Definition: BrepData.h:37
SurfaceType
Definition: GeomEnums.h:26
std::shared_ptr< Topo::Wire > pWire
Definition: Shape.h:83
FaceClashType
Definition: Clash.h:24
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:80