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);
93 static pFace makePolygon(
const std::vector<Geom::Pnt>& points);
107 static std::vector<pConstWire> getInnerBoundaries(
pConstFace face);
109 static pShape makeConnectedFaceSet(
const std::vector<int>& model,
const std::vector<Geom::Pnt>& vertices);
116 static bool extendFace(
pFace face,
const std::vector<pConstEdge>& edges,
double offset);
120 static bool getCylinderSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& radius);
122 static bool getCylinderSurfaceParams(
FACE* face,
Geom::Ax2& position,
double& radius);
124 static bool getConeSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& angle,
double& radius);
126 static bool getConeSurfaceParams(
FACE* face,
Geom::Ax2& position,
double& angle,
double& radius);
134 static bool isSelfIntersecting(
pConstFace face);
136 static void getOuterBoundaryPoints(
pConstFace face, std::vector<Geom::Pnt>& pnts);
138 static void getOuterBoundaryPointsFast(
pConstFace face, std::vector<Geom::Pnt>& pnts);
144 static std::shared_ptr<Topo::SpecialFaceInfo> getSpecialFaceInfo(
pConstFace face);
150 static bool isRectangular(
pConstFace face,
Geom::Ax2& position,
double& width,
double& height);
152 static void getOuterBoundaryPointsFast(
FACE*, std::vector<Geom::Pnt>& pnt);
160 #ifndef LXAPI // INTERFACES BELOW ARE -NOT- PART OF THE LEXOCAD API 164 static void __setDefaultFaceTool__(
Topo::FaceTool* tool) { _defaultTool = tool; }
165 static void __setAcisShapeTool__(
Topo::FaceTool* tool) { _acisTool = tool; }
170 static bool getTopoDS_Face(
pConstFace face, TopoDS_Face& topoFace);
173 virtual pFace _makeFace(
pWire outer,
double precision);
174 virtual pFace _makeFace(
pWire outerWire,
const std::vector<pWire>& innerWires,
double precision);
175 virtual pFace _makePolygon(
const std::vector<Geom::Pnt>& points);
181 virtual bool _getTopoDS_Face(
pConstFace face, TopoDS_Face& topoFace);
183 virtual std::vector<pConstWire> _getInnerBoundaries(
pConstFace face);
184 virtual pShape _makeConnectedFaceSet(
const std::vector<int>& model,
const std::vector<Geom::Pnt>& vertices);
186 virtual bool _extendFace(
pFace face,
const std::vector<pConstEdge>& edges,
double offset);
187 virtual bool _getCylinderSurfaceParams(
FACE* face,
Geom::Ax2& position,
double& radius);
188 virtual bool _getCylinderSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& radius);
189 virtual bool _getConeSurfaceParams(
FACE* face,
Geom::Ax2& position,
double& angle,
double& radius);
190 virtual bool _getConeSurfaceParams(
pConstFace face,
Geom::Ax2& position,
double& angle,
double& radius);
193 virtual bool _projectPointOnFace(
const Geom::Pnt& p,
pConstFace face,
double& u,
double& v);
194 virtual bool _isSelfIntersecting(
pConstFace face);
195 virtual pFace _makePlanarFace(
pWire outerWire,
const std::vector<pWire>& innerWires,
double precision);
196 virtual pFace _makePlanarFaceWithoutVoids(
const std::vector<pWire>& wires,
double precision);
198 virtual void _getOuterBoundaryPoints(
pConstFace face, std::vector<Geom::Pnt>& pnts);
199 virtual void _getOuterBoundaryPointsFast(
pConstFace face, std::vector<Geom::Pnt>& pnts);
200 virtual void _getOuterBoundaryPointsFast(
FACE*, std::vector<Geom::Pnt>& pnts);
203 virtual bool _createTextureCoordinates(
pConstFace face,
205 const App::SurfaceStyleAssignment* ssa,
206 std::vector<Geom::Pnt2d>& coord);
std::shared_ptr< Topo::Wire const > pConstWire
Definition: Shape.h:97
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
static const double linear_Resolution()
Definition: Precision.h:24
Definition: FaceTool.h:24
std::shared_ptr< Topo::Face const > pConstFace
Definition: Shape.h:96
std::shared_ptr< Topo::Face > pFace
Definition: Shape.h:81
void transform(Container container, OutputIt out, BinaryFunction function)
Definition: Algorithms.h:29
std::shared_ptr< const Geom::BrepData > pConstBrepData
Definition: BrepData.h:31
SurfaceType
Definition: GeomEnums.h:23
double distance(const Geom::Vec &v1, const Geom::Vec &v2)
Returns the distance between two points.
Definition: Vec.h:345
std::shared_ptr< Topo::Wire > pWire
Definition: Shape.h:82
FaceClashType
Definition: Clash.h:24
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:76