| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef FEATUREGEOMFILLSURFACE_H |
| | #define FEATUREGEOMFILLSURFACE_H |
| |
|
| | #include <App/PropertyLinks.h> |
| | #include <Mod/Part/App/FeaturePartSpline.h> |
| | #include <Mod/Surface/SurfaceGlobal.h> |
| |
|
| | #include <GeomFill_FillingStyle.hxx> |
| | #include <Geom_BoundedSurface.hxx> |
| | #include <ShapeExtend_WireData.hxx> |
| |
|
| |
|
| | namespace Surface |
| | { |
| |
|
| | class SurfaceExport ShapeValidator |
| | { |
| | protected: |
| | bool willBezier; |
| | int edgeCount; |
| |
|
| | public: |
| | ShapeValidator(); |
| | void initValidator(); |
| | void checkEdge(const TopoDS_Shape& shape); |
| | void checkAndAdd(const TopoDS_Shape& shape, Handle(ShapeExtend_WireData) * aWD = nullptr); |
| | void checkAndAdd( |
| | const Part::TopoShape& ts, |
| | const char* subName, |
| | Handle(ShapeExtend_WireData) * aWire = nullptr |
| | ); |
| |
|
| | bool isBezier() const |
| | { |
| | return willBezier; |
| | } |
| | int numEdges() const |
| | { |
| | return edgeCount; |
| | } |
| | }; |
| |
|
| | class SurfaceExport GeomFillSurface: public Part::Spline |
| | { |
| | PROPERTY_HEADER_WITH_OVERRIDE(Surface::GeomFillSurface); |
| |
|
| | public: |
| | GeomFillSurface(); |
| | App::PropertyLinkSubList BoundaryList; |
| | App::PropertyBoolList ReversedList; |
| | App::PropertyEnumeration FillType; |
| |
|
| | short mustExecute() const override; |
| | void onChanged(const App::Property*) override; |
| | App::DocumentObjectExecReturn* execute() override; |
| |
|
| | |
| | const char* getViewProviderName() const override |
| | { |
| | return "SurfaceGui::ViewProviderGeomFillSurface"; |
| | } |
| |
|
| | protected: |
| | GeomFill_FillingStyle getFillingStyle(); |
| | |
| | bool getWire(TopoDS_Wire& aWire); |
| | void createFace(const Handle(Geom_BoundedSurface) & aSurface); |
| | void createBezierSurface(TopoDS_Wire& aWire); |
| | void createBSplineSurface(TopoDS_Wire& aWire); |
| |
|
| | private: |
| | static const char* FillTypeEnums[]; |
| | }; |
| |
|
| | } |
| |
|
| | #endif |
| |
|