opencascade-hs 0.4.0.0 → 0.5.0.0
raw patch · 68 files changed
+1228/−7 lines, 68 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ OpenCascade.BRepAdaptor: data Curve
+ OpenCascade.BRepAdaptor.Curve: bezier :: Ptr Curve -> Acquire (Ptr (Handle BezierCurve))
+ OpenCascade.BRepAdaptor.Curve: bspline :: Ptr Curve -> Acquire (Ptr (Handle BSplineCurve))
+ OpenCascade.BRepAdaptor.Curve: curve :: Ptr Curve -> Acquire (Ptr Curve)
+ OpenCascade.BRepAdaptor.Curve: curveType :: Ptr Curve -> IO CurveType
+ OpenCascade.BRepAdaptor.Curve: data Curve
+ OpenCascade.BRepAdaptor.Curve: firstParameter :: Ptr Curve -> IO Double
+ OpenCascade.BRepAdaptor.Curve: fromEdge :: Ptr Edge -> Acquire (Ptr Curve)
+ OpenCascade.BRepAdaptor.Curve: lastParameter :: Ptr Curve -> IO Double
+ OpenCascade.BRepAdaptor.Internal.Destructors: deleteCurve :: Ptr Curve -> IO ()
+ OpenCascade.BRepAdaptor.Types: data Curve
+ OpenCascade.BRepBuilderAPI.MakeShape: build :: Ptr MakeShape -> IO ()
+ OpenCascade.BRepFilletAPI.MakeFillet: edge :: Ptr MakeFillet -> Int -> Int -> Acquire (Ptr Edge)
+ OpenCascade.BRepFilletAPI.MakeFillet: faultyContour :: Ptr MakeFillet -> Int -> IO Int
+ OpenCascade.BRepFilletAPI.MakeFillet: nbEdges :: Ptr MakeFillet -> Int -> IO Int
+ OpenCascade.BRepFilletAPI.MakeFillet: nbFaultyContours :: Ptr MakeFillet -> IO Int
+ OpenCascade.BRepFilletAPI.MakeFillet: remove :: Ptr MakeFillet -> Ptr Edge -> IO ()
+ OpenCascade.BRepFilletAPI.MakeFillet: reset :: Ptr MakeFillet -> IO ()
+ OpenCascade.BRepLib: buildCurve3d :: Ptr Edge -> Double -> Shape -> Int -> Int -> IO Bool
+ OpenCascade.BRepOffsetAPI.MakePipe: fromWireShapeTrihedronModeAndForceC1 :: Ptr Wire -> Ptr Shape -> Trihedron -> Bool -> Acquire (Ptr MakePipe)
+ OpenCascade.Geom.BSplineCurve: isRational :: Ptr (Handle BSplineCurve) -> IO Bool
+ OpenCascade.Geom.BSplineCurve: nbPoles :: Ptr (Handle BSplineCurve) -> IO Int
+ OpenCascade.Geom.BSplineCurve: pole :: Ptr (Handle BSplineCurve) -> Int -> Acquire (Ptr Pnt)
+ OpenCascade.Geom.BSplineCurve: segment :: Ptr (Handle BSplineCurve) -> Double -> Double -> Double -> IO ()
+ OpenCascade.Geom.BSplineCurve: toHandle :: Ptr BSplineCurve -> Acquire (Ptr (Handle BSplineCurve))
+ OpenCascade.Geom.BezierCurve: isRational :: Ptr (Handle BezierCurve) -> IO Bool
+ OpenCascade.Geom.BezierCurve: nbPoles :: Ptr (Handle BezierCurve) -> IO Int
+ OpenCascade.Geom.BezierCurve: pole :: Ptr (Handle BezierCurve) -> Int -> Acquire (Ptr Pnt)
+ OpenCascade.Geom.BezierCurve: segment :: Ptr (Handle BezierCurve) -> Double -> Double -> IO ()
+ OpenCascade.Geom.Curve: firstParameter :: Ptr (Handle Curve) -> IO Double
+ OpenCascade.Geom.Curve: lastParameter :: Ptr (Handle Curve) -> IO Double
+ OpenCascade.Geom.Internal.Destructors: deleteHandleBSplineCurve :: Ptr (Handle BSplineCurve) -> IO ()
+ OpenCascade.Geom.Types: data BSplineCurve
+ OpenCascade.Geom.Types: instance OpenCascade.Inheritance.SubTypeOf OpenCascade.Geom.Types.Curve OpenCascade.Geom.Types.BSplineCurve
+ OpenCascade.GeomAbs.CurveType: BSplineCurve :: CurveType
+ OpenCascade.GeomAbs.CurveType: BezierCurve :: CurveType
+ OpenCascade.GeomAbs.CurveType: Circle :: CurveType
+ OpenCascade.GeomAbs.CurveType: Ellipse :: CurveType
+ OpenCascade.GeomAbs.CurveType: Hyperbola :: CurveType
+ OpenCascade.GeomAbs.CurveType: Line :: CurveType
+ OpenCascade.GeomAbs.CurveType: OffsetCurve :: CurveType
+ OpenCascade.GeomAbs.CurveType: OtherCurve :: CurveType
+ OpenCascade.GeomAbs.CurveType: Parabola :: CurveType
+ OpenCascade.GeomAbs.CurveType: data CurveType
+ OpenCascade.GeomAbs.CurveType: instance GHC.Enum.Enum OpenCascade.GeomAbs.CurveType.CurveType
+ OpenCascade.GeomAbs.CurveType: instance GHC.Show.Show OpenCascade.GeomAbs.CurveType.CurveType
+ OpenCascade.GeomAbs.Shape: C0 :: Shape
+ OpenCascade.GeomAbs.Shape: C1 :: Shape
+ OpenCascade.GeomAbs.Shape: C2 :: Shape
+ OpenCascade.GeomAbs.Shape: C3 :: Shape
+ OpenCascade.GeomAbs.Shape: CN :: Shape
+ OpenCascade.GeomAbs.Shape: G1 :: Shape
+ OpenCascade.GeomAbs.Shape: G2 :: Shape
+ OpenCascade.GeomAbs.Shape: data Shape
+ OpenCascade.GeomAbs.Shape: instance GHC.Enum.Enum OpenCascade.GeomAbs.Shape.Shape
+ OpenCascade.GeomAbs.Shape: instance GHC.Show.Show OpenCascade.GeomAbs.Shape.Shape
+ OpenCascade.GeomAdaptor.Curve: curve :: Ptr Curve -> Acquire (Ptr (Handle Curve))
+ OpenCascade.GeomAdaptor.Curve: data Curve
+ OpenCascade.GeomAdaptor.Curve: firstParameter :: Ptr Curve -> IO Double
+ OpenCascade.GeomAdaptor.Curve: fromHandle :: Ptr (Handle Curve) -> Acquire (Ptr Curve)
+ OpenCascade.GeomAdaptor.Curve: lastParameter :: Ptr Curve -> IO Double
+ OpenCascade.GeomAdaptor.Internal.Destructors: deleteCurve :: Ptr Curve -> IO ()
+ OpenCascade.GeomAdaptor.Types: data Curve
+ OpenCascade.GeomConvert.ApproxCurve: curve :: Ptr ApproxCurve -> Acquire (Ptr (Handle BSplineCurve))
+ OpenCascade.GeomConvert.ApproxCurve: data ApproxCurve
+ OpenCascade.GeomConvert.ApproxCurve: fromCurveToleranceOrderSegmentsAndDegree :: Ptr (Handle Curve) -> Double -> Shape -> Int -> Int -> Acquire (Ptr ApproxCurve)
+ OpenCascade.GeomConvert.ApproxCurve: hasResult :: Ptr ApproxCurve -> IO Bool
+ OpenCascade.GeomConvert.ApproxCurve: isDone :: Ptr ApproxCurve -> IO Bool
+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve: arc :: Ptr BSplineCurveToBezierCurve -> Int -> Acquire (Ptr (Handle BezierCurve))
+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve: data BSplineCurveToBezierCurve
+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve: fromHandle :: Ptr (Handle BSplineCurve) -> Acquire (Ptr BSplineCurveToBezierCurve)
+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve: fromHandleParametersAndTolerance :: Ptr (Handle BSplineCurve) -> Double -> Double -> Double -> Acquire (Ptr BSplineCurveToBezierCurve)
+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve: nbArcs :: Ptr BSplineCurveToBezierCurve -> IO Int
+ OpenCascade.GeomConvert.Internal.Destructors: deleteApproxCurve :: Ptr ApproxCurve -> IO ()
+ OpenCascade.GeomConvert.Internal.Destructors: deleteBSplineCurveToBezierCurve :: Ptr BSplineCurveToBezierCurve -> IO ()
+ OpenCascade.GeomConvert.Types: data ApproxCurve
+ OpenCascade.GeomConvert.Types: data BSplineCurveToBezierCurve
+ OpenCascade.GeomFill: data Trihedron
+ OpenCascade.GeomFill.Trihedron: IsConstantNormal :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsCorrectedFrenet :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsDarboux :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsDiscreteTrihedron :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsFixed :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsFrenet :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsGuideAC :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsGuideACWithContact :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsGuidePlan :: Trihedron
+ OpenCascade.GeomFill.Trihedron: IsGuidePlanWithContact :: Trihedron
+ OpenCascade.GeomFill.Trihedron: data Trihedron
+ OpenCascade.GeomFill.Trihedron: instance GHC.Classes.Eq OpenCascade.GeomFill.Trihedron.Trihedron
+ OpenCascade.GeomFill.Trihedron: instance GHC.Enum.Enum OpenCascade.GeomFill.Trihedron.Trihedron
+ OpenCascade.GeomFill.Trihedron: instance GHC.Show.Show OpenCascade.GeomFill.Trihedron.Trihedron
+ OpenCascade.HLRAlgo.Internal.Destructors: deleteProjector :: Ptr Projector -> IO ()
+ OpenCascade.HLRAlgo.Projector: data Projector
+ OpenCascade.HLRAlgo.Projector: fromAx2 :: Ptr Ax2 -> Acquire (Ptr Projector)
+ OpenCascade.HLRAlgo.Types: data Projector
+ OpenCascade.HLRBRep.Algo: add :: Ptr (Handle Algo) -> Ptr Shape -> IO ()
+ OpenCascade.HLRBRep.Algo: data Algo
+ OpenCascade.HLRBRep.Algo: hide :: Ptr (Handle Algo) -> IO ()
+ OpenCascade.HLRBRep.Algo: new :: Acquire (Ptr (Handle Algo))
+ OpenCascade.HLRBRep.Algo: projector :: Ptr (Handle Algo) -> Ptr Projector -> IO ()
+ OpenCascade.HLRBRep.Algo: update :: Ptr (Handle Algo) -> IO ()
+ OpenCascade.HLRBRep.HLRToShape: compoundOfEdges :: Ptr HLRToShape -> TypeOfResultingEdge -> Bool -> Bool -> Acquire (Ptr Shape)
+ OpenCascade.HLRBRep.HLRToShape: data HLRToShape
+ OpenCascade.HLRBRep.HLRToShape: fromAlgo :: Ptr (Handle Algo) -> Acquire (Ptr HLRToShape)
+ OpenCascade.HLRBRep.Internal.Destructors: deleteAlgo :: Ptr (Handle Algo) -> IO ()
+ OpenCascade.HLRBRep.Internal.Destructors: deleteHLRToShape :: Ptr HLRToShape -> IO ()
+ OpenCascade.HLRBRep.TypeOfResultingEdge: IsoLine :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: OutLine :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: Rg1Line :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: RgNLine :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: Sharp :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: Undefined :: TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: data TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: instance GHC.Classes.Eq OpenCascade.HLRBRep.TypeOfResultingEdge.TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: instance GHC.Classes.Ord OpenCascade.HLRBRep.TypeOfResultingEdge.TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: instance GHC.Enum.Enum OpenCascade.HLRBRep.TypeOfResultingEdge.TypeOfResultingEdge
+ OpenCascade.HLRBRep.TypeOfResultingEdge: instance GHC.Show.Show OpenCascade.HLRBRep.TypeOfResultingEdge.TypeOfResultingEdge
+ OpenCascade.HLRBRep.Types: data Algo
+ OpenCascade.HLRBRep.Types: data HLRToShape
+ OpenCascade.ShapeConstruct.Curve: convertToBSpline :: Ptr Curve -> Ptr (Handle Curve) -> Double -> Double -> Double -> Acquire (Ptr (Handle BSplineCurve))
+ OpenCascade.ShapeConstruct.Curve: data Curve
+ OpenCascade.ShapeConstruct.Curve: new :: Acquire (Ptr Curve)
+ OpenCascade.ShapeConstruct.Internal.Destructors: deleteCurve :: Ptr Curve -> IO ()
+ OpenCascade.ShapeConstruct.Types: data Curve
Files
- CHANGELOG.md +20/−0
- cpp/hs_BRepAdaptor_Curve.cpp +35/−0
- cpp/hs_BRepAdaptor_Curve.h +30/−0
- cpp/hs_BRepBuilderAPI_MakeShape.cpp +4/−0
- cpp/hs_BRepBuilderAPI_MakeShape.h +1/−0
- cpp/hs_BRepFilletAPI_MakeFillet.cpp +23/−1
- cpp/hs_BRepFilletAPI_MakeFillet.h +12/−0
- cpp/hs_BRepLib.cpp +4/−0
- cpp/hs_BRepLib.h +2/−0
- cpp/hs_BRepOffsetAPI_MakePipe.cpp +7/−0
- cpp/hs_BRepOffsetAPI_MakePipe.h +6/−0
- cpp/hs_GeomAdaptor_Curve.cpp +22/−0
- cpp/hs_GeomAdaptor_Curve.h +24/−0
- cpp/hs_GeomConvert_ApproxCurve.cpp +29/−0
- cpp/hs_GeomConvert_ApproxCurve.h +30/−0
- cpp/hs_GeomConvert_BSplineCurveToBezierCurve.cpp +27/−0
- cpp/hs_GeomConvert_BSplineCurveToBezierCurve.h +28/−0
- cpp/hs_Geom_BSplineCurve.cpp +33/−0
- cpp/hs_Geom_BSplineCurve.h +30/−0
- cpp/hs_Geom_BezierCurve.cpp +16/−0
- cpp/hs_Geom_BezierCurve.h +8/−0
- cpp/hs_Geom_Curve.cpp +9/−0
- cpp/hs_Geom_Curve.h +4/−0
- cpp/hs_HLRAlgo_Projector.cpp +10/−0
- cpp/hs_HLRAlgo_Projector.h +18/−0
- cpp/hs_HLRBRep_Algo.cpp +27/−0
- cpp/hs_HLRBRep_Algo.h +27/−0
- cpp/hs_HLRBRep_HLRToShape.cpp +14/−0
- cpp/hs_HLRBRep_HLRToShape.h +21/−0
- cpp/hs_ShapeConstruct_Curve.cpp +21/−0
- cpp/hs_ShapeConstruct_Curve.h +26/−0
- cpp/hs_types.h +14/−0
- opencascade-hs.cabal +48/−2
- src/OpenCascade/BRepAdaptor.hs +5/−0
- src/OpenCascade/BRepAdaptor/Curve.hs +62/−0
- src/OpenCascade/BRepAdaptor/Internal/Destructors.hs +10/−0
- src/OpenCascade/BRepAdaptor/Types.hs +6/−0
- src/OpenCascade/BRepBuilderAPI/MakeShape.hs +3/−0
- src/OpenCascade/BRepFilletAPI/MakeFillet.hs +33/−1
- src/OpenCascade/BRepLib.hs +13/−2
- src/OpenCascade/BRepOffsetAPI/MakePipe.hs +9/−0
- src/OpenCascade/Geom/BSplineCurve.hs +44/−0
- src/OpenCascade/Geom/BezierCurve.hs +28/−0
- src/OpenCascade/Geom/Curve.hs +12/−1
- src/OpenCascade/Geom/Internal/Destructors.hs +3/−0
- src/OpenCascade/Geom/Types.hs +3/−0
- src/OpenCascade/GeomAbs/CurveType.hs +16/−0
- src/OpenCascade/GeomAbs/Shape.hs +7/−0
- src/OpenCascade/GeomAdaptor/Curve.hs +39/−0
- src/OpenCascade/GeomAdaptor/Internal/Destructors.hs +10/−0
- src/OpenCascade/GeomAdaptor/Types.hs +6/−0
- src/OpenCascade/GeomConvert/ApproxCurve.hs +50/−0
- src/OpenCascade/GeomConvert/BSplineCurveToBezierCurve.hs +38/−0
- src/OpenCascade/GeomConvert/Internal/Destructors.hs +12/−0
- src/OpenCascade/GeomConvert/Types.hs +8/−0
- src/OpenCascade/GeomFill.hs +4/−0
- src/OpenCascade/GeomFill/Trihedron.hs +8/−0
- src/OpenCascade/HLRAlgo/Internal/Destructors.hs +12/−0
- src/OpenCascade/HLRAlgo/Projector.hs +16/−0
- src/OpenCascade/HLRAlgo/Types.hs +6/−0
- src/OpenCascade/HLRBRep/Algo.hs +29/−0
- src/OpenCascade/HLRBRep/HLRToShape.hs +30/−0
- src/OpenCascade/HLRBRep/Internal/Destructors.hs +13/−0
- src/OpenCascade/HLRBRep/TypeOfResultingEdge.hs +12/−0
- src/OpenCascade/HLRBRep/Types.hs +8/−0
- src/OpenCascade/ShapeConstruct/Curve.hs +28/−0
- src/OpenCascade/ShapeConstruct/Internal/Destructors.hs +9/−0
- src/OpenCascade/ShapeConstruct/Types.hs +6/−0
CHANGELOG.md view
@@ -8,6 +8,26 @@ ## Unreleased +- Add `OpenCascade.BRepFilletAPI.MakeFillet` methods `reset`, `nbFaultyContours`, `faultyContour`, `nbEdges`, `edge` and `remove`+- Add `OpenCascade.BRepBuilderAPI.MakeShape` method `build`+- Add `OpenCascade.BRepOffsetAPI.MakePipe` constructor `fromWireShapeTrihedronModeAndForceC1`+- Add `OpenCascade.GeomFill.Trihedron`+- Add `OpenCascade.BRepAdaptor.Curve`+- Add `OpenCascade.GeomAbs.CurveType`+- Add `OpenCascade.GeomAbs.Shape`+- Add `OpenCascade.GeomConvert.BSplineCurveToBezierCurve`+- Add `OpenCascade.GeomConvert.ApproxCurve`+- Add `OpenCascade.Geom.BSplineCurve`+- Add `OpenCascade.Geom.BezierCurve` methods `pole`, `nbPoles` and `isRational`+- Add `OpenCascade.GeomAdaptor.Curve`+- Add `OpenCascade.ShapeConstruct.Curve`+- Add `OpenCascade.HLRAlgo.Projector`+- Add `OpenCascade.HLRBRep.Algo`+- Add `OpenCascade.HLRBRep.HLRToShape`+- Add `OpenCascade.HLRBRep.TypeOfResultingEdge`+- Add `OpenCascade.BRepLib` method `buildCurve3d`+- Add `OpenCascade.Geom.Curve` methods `firstParameter` and `lastParameter`+ ## 0.4.0.0 - Add `OpenCascade.BRepBuilderAPI.MakeVertex`
+ cpp/hs_BRepAdaptor_Curve.cpp view
@@ -0,0 +1,35 @@+#include <GeomAbs_CurveType.hxx>+#include <BRepAdaptor_Curve.hxx>+#include "hs_BRepAdaptor_Curve.h"++BRepAdaptor_Curve * hs_new_BRepAdaptor_Curve_fromEdge(TopoDS_Edge * edge){+ return new BRepAdaptor_Curve(*edge);+}++void hs_delete_BRepAdaptor_Curve(BRepAdaptor_Curve * curve){+ delete curve;+}++GeomAbs_CurveType hs_BRepAdaptor_Curve_curveType(BRepAdaptor_Curve* curve){+ return curve->GetType(); +}++Handle(Geom_BezierCurve) * hs_BRepAdaptor_Curve_bezier(BRepAdaptor_Curve * curve){+ return new opencascade::handle(curve->Bezier());+}++Handle(Geom_BSplineCurve) * hs_BRepAdaptor_Curve_bspline(BRepAdaptor_Curve * curve){+ return new opencascade::handle(curve->BSpline());+}++GeomAdaptor_Curve * hs_BRepAdaptor_Curve_curve(BRepAdaptor_Curve * curve){+ return new GeomAdaptor_Curve(curve->Curve());+}++double hs_BRepAdaptor_Curve_firstParameter(BRepAdaptor_Curve *curve){+ return curve->FirstParameter();+}++double hs_BRepAdaptor_Curve_lastParameter(BRepAdaptor_Curve *curve){+ return curve->LastParameter();+}
+ cpp/hs_BRepAdaptor_Curve.h view
@@ -0,0 +1,30 @@+#ifndef HS_BREP_ADAPTOR_CURVE_H+#define HS_BREP_ADAPTOR_CURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++BRepAdaptor_Curve * hs_new_BRepAdaptor_Curve_fromEdge(TopoDS_Edge * edge);++void hs_delete_BRepAdaptor_Curve(BRepAdaptor_Curve * curve);++GeomAbs_CurveType hs_BRepAdaptor_Curve_curveType(BRepAdaptor_Curve* curve);++Handle(Geom_BezierCurve) * hs_BRepAdaptor_Curve_bezier(BRepAdaptor_Curve * curve);++Handle(Geom_BSplineCurve) * hs_BRepAdaptor_Curve_bspline(BRepAdaptor_Curve * curve);++GeomAdaptor_Curve * hs_BRepAdaptor_Curve_curve(BRepAdaptor_Curve * curve);++double hs_BRepAdaptor_Curve_firstParameter(BRepAdaptor_Curve *curve);++double hs_BRepAdaptor_Curve_lastParameter(BRepAdaptor_Curve *curve);++#ifdef __cplusplus+}+#endif++#endif // HS_BREP_ADAPTOR_CURVE_H
cpp/hs_BRepBuilderAPI_MakeShape.cpp view
@@ -5,3 +5,7 @@ TopoDS_Shape * hs_BRepBuilderAPI_MakeShape_shape(BRepBuilderAPI_MakeShape* builder){ return new TopoDS_Shape(builder->Shape()); }++void hs_BRepBuilderAPI_MakeShape_build(BRepBuilderAPI_MakeShape* builder){+ builder->Build();+}
cpp/hs_BRepBuilderAPI_MakeShape.h view
@@ -9,6 +9,7 @@ TopoDS_Shape * hs_BRepBuilderAPI_MakeShape_shape(BRepBuilderAPI_MakeShape * builder); +void hs_BRepBuilderAPI_MakeShape_build(BRepBuilderAPI_MakeShape* builder); #ifdef __cplusplus }
cpp/hs_BRepFilletAPI_MakeFillet.cpp view
@@ -18,8 +18,30 @@ builder->Add(r, *edge); } - void hs_BRepFilletAPI_MakeFillet_addEdgeWithTwoRadiuses(BRepFilletAPI_MakeFillet * builder, double r1, double r2, TopoDS_Edge *edge ){ builder->Add(r1, r2, *edge); } +void hs_BRepFilletAPI_MakeFillet_reset(BRepFilletAPI_MakeFillet * builder){+ builder->Reset();+}++int hs_BRepFilletAPI_MakeFillet_nbFaultyContours(BRepFilletAPI_MakeFillet * builder){+ return builder->NbFaultyContours();+}++int hs_BRepFilletAPI_MakeFillet_faultyContour(BRepFilletAPI_MakeFillet * builder, int index){+ return builder->FaultyContour(index);+}++int hs_BRepFilletAPI_MakeFillet_nbEdges(BRepFilletAPI_MakeFillet * builder, int contourIndex){+ return builder->NbEdges(contourIndex);+}++TopoDS_Edge * hs_BRepFilletAPI_MakeFillet_edge(BRepFilletAPI_MakeFillet * builder, int contourIndex, int edgeIndex){+ return new TopoDS_Edge(builder->Edge(contourIndex, edgeIndex));+}++void hs_BRepFilletAPI_MakeFillet_remove(BRepFilletAPI_MakeFillet * builder, TopoDS_Edge * edge){+ builder->Remove(*edge);+}
cpp/hs_BRepFilletAPI_MakeFillet.h view
@@ -17,6 +17,18 @@ void hs_BRepFilletAPI_MakeFillet_addEdgeWithTwoRadiuses(BRepFilletAPI_MakeFillet * builder, double r1, double r2, TopoDS_Edge *edge ); +void hs_BRepFilletAPI_MakeFillet_reset(BRepFilletAPI_MakeFillet * builder);++int hs_BRepFilletAPI_MakeFillet_nbFaultyContours(BRepFilletAPI_MakeFillet * builder);++int hs_BRepFilletAPI_MakeFillet_faultyContour(BRepFilletAPI_MakeFillet * builder, int index);++int hs_BRepFilletAPI_MakeFillet_nbEdges(BRepFilletAPI_MakeFillet * builder, int contourIndex);++TopoDS_Edge * hs_BRepFilletAPI_MakeFillet_edge(BRepFilletAPI_MakeFillet * builder, int contourIndex, int edgeIndex);++void hs_BRepFilletAPI_MakeFillet_remove(BRepFilletAPI_MakeFillet * builder, TopoDS_Edge * edge);+ #ifdef __cplusplus } #endif
cpp/hs_BRepLib.cpp view
@@ -4,3 +4,7 @@ bool hs_BRepLib_orientClosedSolid(TopoDS_Solid * solid){ return BRepLib::OrientClosedSolid(*solid); }++bool hs_BRepLib_buildCurve3d(TopoDS_Edge* edge, double tolerance, GeomAbs_Shape continuity, int maxDegree, int maxSegment){+ return BRepLib::BuildCurve3d(*edge, tolerance, continuity, maxDegree, maxSegment);+}
cpp/hs_BRepLib.h view
@@ -9,6 +9,8 @@ bool hs_BRepLib_orientClosedSolid(TopoDS_Solid * solid); +bool hs_BRepLib_buildCurve3d(TopoDS_Edge* edge, double tolerance, GeomAbs_Shape continuity, int maxDegree, int maxSegment);+ #ifdef __cplusplus } #endif
cpp/hs_BRepOffsetAPI_MakePipe.cpp view
@@ -5,6 +5,13 @@ return new BRepOffsetAPI_MakePipe(*wire, *profile); } +BRepOffsetAPI_MakePipe * hs_new_BRepOffsetAPI_MakePipe_fromWireShapeTrihedronModeAndForceC1(+ TopoDS_Wire * wire,+ TopoDS_Shape * profile,+ GeomFill_Trihedron mode, + bool forceApproxC1 ){+ return new BRepOffsetAPI_MakePipe(*wire, *profile, mode, forceApproxC1);+} void hs_delete_BRepOffsetAPI_MakePipe(BRepOffsetAPI_MakePipe * builder){ delete builder;
cpp/hs_BRepOffsetAPI_MakePipe.h view
@@ -9,6 +9,12 @@ BRepOffsetAPI_MakePipe * hs_new_BRepOffsetAPI_MakePipe_fromWireAndShape(TopoDS_Wire * wire, TopoDS_Shape * profile); +BRepOffsetAPI_MakePipe * hs_new_BRepOffsetAPI_MakePipe_fromWireShapeTrihedronModeAndForceC1(+ TopoDS_Wire * wire,+ TopoDS_Shape * profile,+ GeomFill_Trihedron mode, + bool forceApproxC1 );+ void hs_delete_BRepOffsetAPI_MakePipe(BRepOffsetAPI_MakePipe * builder); #ifdef __cplusplus
+ cpp/hs_GeomAdaptor_Curve.cpp view
@@ -0,0 +1,22 @@+#include <GeomAdaptor_Curve.hxx>+#include "hs_GeomAdaptor_Curve.h"++GeomAdaptor_Curve * hs_new_GeomAdaptor_Curve_fromHandle(Handle(Geom_Curve) *curve){+ return new GeomAdaptor_Curve(*curve);+}++void hs_delete_GeomAdaptor_Curve(GeomAdaptor_Curve * adaptor){+ delete adaptor;+}++double hs_GeomAdaptor_Curve_firstParameter(GeomAdaptor_Curve * adaptor){+ return adaptor->FirstParameter();+}++double hs_GeomAdaptor_Curve_lastParameter(GeomAdaptor_Curve * adaptor){+ return adaptor->LastParameter();+}++Handle(Geom_Curve)* hs_GeomAdaptor_Curve_curve(GeomAdaptor_Curve * adaptor){+ return new opencascade::handle(adaptor->Curve());+}
+ cpp/hs_GeomAdaptor_Curve.h view
@@ -0,0 +1,24 @@+#ifndef HS_GEOM_ADAPTOR_CURVE_H+#define HS_GEOM_ADAPTOR_CURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++GeomAdaptor_Curve * hs_new_GeomAdaptor_Curve_fromHandle(Handle(Geom_Curve) *curve);++void hs_delete_GeomAdaptor_Curve(GeomAdaptor_Curve * adaptor);++double hs_GeomAdaptor_Curve_firstParameter(GeomAdaptor_Curve * adaptor);++double hs_GeomAdaptor_Curve_lastParameter(GeomAdaptor_Curve * adaptor);++Handle(Geom_Curve)* hs_GeomAdaptor_Curve_curve(GeomAdaptor_Curve * adaptor);++#ifdef __cplusplus+}+#endif++#endif // HS_GEOM_ADAPTOR_CURVE_H
+ cpp/hs_GeomConvert_ApproxCurve.cpp view
@@ -0,0 +1,29 @@+#include <GeomConvert_ApproxCurve.hxx>+#include <Geom_Curve.hxx>+#include "hs_GeomConvert_ApproxCurve.h"++GeomConvert_ApproxCurve * hs_new_GeomConvert_ApproxCurve_fromCurveToleranceOrderSegmentsAndDegree(+ Handle(Geom_Curve) *curve, + double tolerance, + GeomAbs_Shape order, + int maxSegments, + int maxDegree+ ) {+ return new GeomConvert_ApproxCurve(*curve, tolerance, order, maxSegments, maxDegree);+}++void hs_delete_GeomConvert_ApproxCurve(GeomConvert_ApproxCurve * approxCurve){+ delete approxCurve;+}++Handle(Geom_BSplineCurve) * hs_GeomConvert_ApproxCurve_curve(GeomConvert_ApproxCurve * approxCurve){+ return new opencascade::handle(approxCurve->Curve());+}++bool hs_GeomConvert_ApproxCurve_isDone(GeomConvert_ApproxCurve * approxCurve){+ return approxCurve->IsDone();+}++bool hs_GeomConvert_ApproxCurve_hasResult(GeomConvert_ApproxCurve * approxCurve){+ return approxCurve->HasResult();+}
+ cpp/hs_GeomConvert_ApproxCurve.h view
@@ -0,0 +1,30 @@+#ifndef HS_GEOM_CONVERT_APPROX_CURVE_H+#define HS_GEOM_CONVERT_APPROX_CURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++GeomConvert_ApproxCurve * hs_new_GeomConvert_ApproxCurve_fromCurveToleranceOrderSegmentsAndDegree(+ Handle(Geom_Curve) *curve, + double tolerance, + GeomAbs_Shape order, + int maxSegments, + int maxDegree+ );++void hs_delete_GeomConvert_ApproxCurve(GeomConvert_ApproxCurve * approxCurve);++Handle(Geom_BSplineCurve) * hs_GeomConvert_ApproxCurve_curve(GeomConvert_ApproxCurve * approxCurve);++bool hs_GeomConvert_ApproxCurve_isDone(GeomConvert_ApproxCurve * approxCurve);++bool hs_GeomConvert_ApproxCurve_hasResult(GeomConvert_ApproxCurve * approxCurve);++#ifdef __cplusplus+}+#endif++#endif // HS_GEOM_CONVERT_APPROX_CURVE_H
+ cpp/hs_GeomConvert_BSplineCurveToBezierCurve.cpp view
@@ -0,0 +1,27 @@+#include <GeomConvert_BSplineCurveToBezierCurve.hxx>+#include "hs_types.h"+#include "hs_GeomConvert_BSplineCurveToBezierCurve.h"++GeomConvert_BSplineCurveToBezierCurve * hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandle (Handle(Geom_BSplineCurve) *basisCurve){+ return new GeomConvert_BSplineCurveToBezierCurve(*basisCurve);+}++GeomConvert_BSplineCurveToBezierCurve * hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandleParametersAndTolerance (+ Handle(Geom_BSplineCurve) *basisCurve,+ double firstParameter, + double secondParameter,+ double tolerance ){+ return new GeomConvert_BSplineCurveToBezierCurve(*basisCurve, firstParameter, secondParameter, tolerance);+}++void hs_delete_GeomConvert_BSplineCurveToBezierCurve(GeomConvert_BSplineCurveToBezierCurve* ptr){+ delete ptr;+}++int hs_GeomConvert_BSplineCurveToBezierCurve_nbArcs(GeomConvert_BSplineCurveToBezierCurve* ptr){+ return ptr->NbArcs();+}++Handle(Geom_BezierCurve) * hs_GeomConvert_BSplineCurveToBezierCurve_arc(GeomConvert_BSplineCurveToBezierCurve * ptr, int n){+ return new opencascade::handle(ptr->Arc(n));+}
+ cpp/hs_GeomConvert_BSplineCurveToBezierCurve.h view
@@ -0,0 +1,28 @@+#ifndef HS_GEOM_CONVERT_BSPLINE_CURVE_TO_BEZIER_CURVE_H+#define HS_GEOM_CONVERT_BSPLINE_CURVE_TO_BEZIER_CURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++GeomConvert_BSplineCurveToBezierCurve * hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandle (Handle(Geom_BSplineCurve) *basisCurve);++GeomConvert_BSplineCurveToBezierCurve * hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandleParametersAndTolerance (+ Handle(Geom_BSplineCurve) *basisCurve,+ double firstParameter, + double secondParameter,+ double tolerance );++void hs_delete_GeomConvert_BSplineCurveToBezierCurve(GeomConvert_BSplineCurveToBezierCurve* ptr);++int hs_GeomConvert_BSplineCurveToBezierCurve_nbArcs(GeomConvert_BSplineCurveToBezierCurve* ptr);++Handle(Geom_BezierCurve) * hs_GeomConvert_BSplineCurveToBezierCurve_arc(GeomConvert_BSplineCurveToBezierCurve * ptr, int n);++#ifdef __cplusplus+}+#endif++#endif // HS_GEOM_CONVERT_BSPLINE_CURVE_TO_BEZIER_CURVE_H
+ cpp/hs_Geom_BSplineCurve.cpp view
@@ -0,0 +1,33 @@+#include <Geom_BSplineCurve.hxx>+#include <NCollection_Array1.hxx>+#include <gp_Pnt.hxx>+#include <Standard_Handle.hxx>+#include "hs_Geom_BSplineCurve.h"++Handle(Geom_BSplineCurve) * hs_Geom_BSplineCurve_toHandle(Geom_BSplineCurve * curve){+ return new Handle(Geom_BSplineCurve)(new Geom_BSplineCurve(*curve));+}++void hs_delete_Handle_Geom_BSplineCurve(Handle(Geom_BSplineCurve)* h){+ delete h;+}++void hs_delete_Geom_BSplineCurve(Geom_BSplineCurve * curve){+ delete curve;+}++int hs_Geom_BSplineCurve_nbPoles(Handle(Geom_BSplineCurve)* h){+ return (*h)->NbPoles();+}++gp_Pnt * hs_Geom_BSplineCurve_pole(Handle(Geom_BSplineCurve)* h, int index){+ return new gp_Pnt((*h)->Pole(index));+}++bool hs_Geom_BSplineCurve_isRational(Handle(Geom_BSplineCurve) *h) {+ return (*h)->IsRational();+}++void hs_Geom_BSplineCurve_segment(Handle(Geom_BSplineCurve) *h, double u1, double u2, double confusion){+ (*h)->Segment(u1, u2, confusion);+}
+ cpp/hs_Geom_BSplineCurve.h view
@@ -0,0 +1,30 @@++#ifndef HS_GEOM_BSPLINECURVE_H+#define HS_GEOM_BSPLINECURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++Handle(Geom_BSplineCurve) * hs_Geom_BSplineCurve_toHandle(Geom_BSplineCurve * curve);++void hs_delete_Handle_Geom_BSplineCurve(Handle(Geom_BSplineCurve)* h);++void hs_delete_Geom_BSplineCurve(Geom_BSplineCurve * curve);++int hs_Geom_BSplineCurve_nbPoles(Handle(Geom_BSplineCurve)* h);++gp_Pnt * hs_Geom_BSplineCurve_pole(Handle(Geom_BSplineCurve)* h, int index);++bool hs_Geom_BSplineCurve_isRational(Handle(Geom_BSplineCurve) *h);++void hs_Geom_BSplineCurve_segment(Handle(Geom_BSplineCurve) *h, double u1, double u2, double confusion);+++#ifdef __cplusplus+}+#endif++#endif // HS_GEOM_BSPLINECURVE_H
cpp/hs_Geom_BezierCurve.cpp view
@@ -12,10 +12,26 @@ return new Handle(Geom_BezierCurve)(new Geom_BezierCurve(*curve)); } +int hs_Geom_BezierCurve_nbPoles(Handle(Geom_BezierCurve)* h){+ return (*h)->NbPoles();+}++gp_Pnt * hs_Geom_BezierCurve_pole(Handle(Geom_BezierCurve)* h, int index){+ return new gp_Pnt((*h)->Pole(index));+}++bool hs_Geom_BezierCurve_isRational(Handle(Geom_BezierCurve) *h) {+ return (*h)->IsRational();+}+ void hs_delete_Handle_Geom_BezierCurve(Handle(Geom_BezierCurve)* h){ delete h; } void hs_delete_Geom_BezierCurve(Geom_BezierCurve * curve){ delete curve;+}++void hs_Geom_BezierCurve_segment(Handle(Geom_BezierCurve) *h, double u1, double u2){+ (*h)->Segment(u1, u2); }
cpp/hs_Geom_BezierCurve.h view
@@ -11,9 +11,17 @@ Handle(Geom_BezierCurve) * hs_Geom_BezierCurve_toHandle(Geom_BezierCurve * curve); +int hs_Geom_BezierCurve_nbPoles(Handle(Geom_BezierCurve)* h);++gp_Pnt * hs_Geom_BezierCurve_pole(Handle(Geom_BezierCurve)* h, int index);++bool hs_Geom_BezierCurve_isRational(Handle(Geom_BezierCurve) *h);+ void hs_delete_Handle_Geom_BezierCurve(Handle(Geom_BezierCurve)* h); void hs_delete_Geom_BezierCurve(Geom_BezierCurve * curve);++void hs_Geom_BezierCurve_segment(Handle(Geom_BezierCurve) *h, double u1, double u2); #ifdef __cplusplus }
cpp/hs_Geom_Curve.cpp view
@@ -1,4 +1,5 @@ #include <Geom_Curve.hxx>+#include <GeomAbs_CurveType.hxx> #include <gp_Pnt.hxx> #include <gp_Vec.hxx> #include "hs_Geom_Curve.h"@@ -9,6 +10,14 @@ gp_Pnt * hs_Geom_Curve_value(Handle(Geom_Curve) * curve, double u){ return new gp_Pnt((*curve)->Value(u));+}++double hs_Geom_Curve_firstParameter(Handle(Geom_Curve) * curve){+ return (*curve)->FirstParameter();+}++double hs_Geom_Curve_lastParameter(Handle(Geom_Curve) * curve){+ return (*curve)->LastParameter(); } gp_Vec * hs_Geom_Curve_dn(Handle (Geom_Curve) * curve, double u, int n){
cpp/hs_Geom_Curve.h view
@@ -10,6 +10,10 @@ gp_Pnt * hs_Geom_Curve_value(Handle(Geom_Curve) * curve, double u); +double hs_Geom_Curve_firstParameter(Handle(Geom_Curve) * curve);++double hs_Geom_Curve_lastParameter(Handle(Geom_Curve) * curve);+ gp_Vec * hs_Geom_Curve_dn(Handle (Geom_Curve) * curve, double u, int n); double hs_Geom_Curve_reversedParameter(Handle (Geom_Curve) * curve, double parameter);
+ cpp/hs_HLRAlgo_Projector.cpp view
@@ -0,0 +1,10 @@+#include <HLRAlgo_Projector.hxx>+#include "hs_HLRAlgo_Projector.h"++HLRAlgo_Projector * hs_new_HLRAlgo_Projector_fromAx2(gp_Ax2* axis){+ return new HLRAlgo_Projector(*axis);+}++void hs_delete_HLRAlgo_Projector(HLRAlgo_Projector* projector){+ delete projector;+}
+ cpp/hs_HLRAlgo_Projector.h view
@@ -0,0 +1,18 @@+#ifndef HS_HLR_ALGO_PROJECTOR_H+#define HS_HLR_ALGO_PROJECTOR_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++HLRAlgo_Projector * hs_new_HLRAlgo_Projector_fromAx2(gp_Ax2* axis);++void hs_delete_HLRAlgo_Projector(HLRAlgo_Projector* projector);+#ifdef __cplusplus+}+#endif++#endif // HS_HLR_ALGO_PROJECTOR_H+
+ cpp/hs_HLRBRep_Algo.cpp view
@@ -0,0 +1,27 @@+#include <HLRBRep_Algo.hxx>+#include "hs_HLRBRep_Algo.h"+#include <Standard_Handle.hxx>++Handle(HLRBRep_Algo) * hs_new_HLRBRep_Algo(){+ return new Handle(HLRBRep_Algo)(new HLRBRep_Algo());+}++void hs_delete_HLRBRep_Algo(Handle(HLRBRep_Algo) * algo){+ delete algo;+}++void hs_HLRBRep_Algo_projector(Handle(HLRBRep_Algo) * algo, HLRAlgo_Projector * projector){+ (*algo)->Projector(*projector);+}++void hs_HLRBRep_Algo_update(Handle(HLRBRep_Algo) * algo){+ (*algo)->Update();+}++void hs_HLRBRep_Algo_hide(Handle(HLRBRep_Algo) * algo){+ (*algo)->Hide();+}++void hs_HLRBRep_Algo_add(Handle(HLRBRep_Algo) * algo, TopoDS_Shape * shape){+ (*algo)->Add(*shape);+}
+ cpp/hs_HLRBRep_Algo.h view
@@ -0,0 +1,27 @@+#ifndef HS_HLRBREP_ALGO_H+#define HS_HLRBREP_ALGO_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++Handle(HLRBRep_Algo) * hs_new_HLRBRep_Algo();++void hs_delete_HLRBRep_Algo(Handle(HLRBRep_Algo) * algo);++void hs_HLRBRep_Algo_projector(Handle(HLRBRep_Algo) * algo, HLRAlgo_Projector * projector);++void hs_HLRBRep_Algo_update(Handle(HLRBRep_Algo) * algo);++void hs_HLRBRep_Algo_hide(Handle(HLRBRep_Algo) * algo);++void hs_HLRBRep_Algo_add(Handle(HLRBRep_Algo) * algo, TopoDS_Shape * shape);++#ifdef __cplusplus+}+#endif++#endif // HS_HLRBREP_ALGO_H+
+ cpp/hs_HLRBRep_HLRToShape.cpp view
@@ -0,0 +1,14 @@+#include <HLRBRep_HLRToShape.hxx>+#include "hs_HLRBRep_HLRToShape.h"++HLRBRep_HLRToShape * hs_new_HLRBRep_HLRToShape_fromHandleAlgo(Handle(HLRBRep_Algo) * algo){+ return new HLRBRep_HLRToShape(*algo);+}++void hs_delete_HLRBRep_HLRToShape(HLRBRep_HLRToShape *hlrToShape){+ delete hlrToShape;+}++TopoDS_Shape * hs_HLRBRep_HLRToShape_compoundOfEdges(HLRBRep_HLRToShape * toShape, HLRBRep_TypeOfResultingEdge edgeType, bool visible, bool in3d){+ return new TopoDS_Shape(toShape->CompoundOfEdges(edgeType, visible, in3d));+}
+ cpp/hs_HLRBRep_HLRToShape.h view
@@ -0,0 +1,21 @@+#ifndef HS_HLRBREP_HLRTOSHAPE_H+#define HS_HLRBREP_HLRTOSHAPE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++HLRBRep_HLRToShape * hs_new_HLRBRep_HLRToShape_fromHandleAlgo(Handle(HLRBRep_Algo) * algo);++void hs_delete_HLRBRep_HLRToShape(HLRBRep_HLRToShape *hlrToShape);++TopoDS_Shape * hs_HLRBRep_HLRToShape_compoundOfEdges(HLRBRep_HLRToShape * toShape, HLRBRep_TypeOfResultingEdge edgeType, bool visible, bool in3d);++#ifdef __cplusplus+}+#endif++#endif // HS_HLRBREP_HLRTOSHAPE_H+
+ cpp/hs_ShapeConstruct_Curve.cpp view
@@ -0,0 +1,21 @@+#include <ShapeConstruct_Curve.hxx>+#include <Geom_Curve.hxx>+#include "hs_ShapeConstruct_Curve.h"++ShapeConstruct_Curve * hs_new_ShapeConstruct_Curve(){+ return new ShapeConstruct_Curve();+}++void hs_delete_ShapeConstruct_Curve(ShapeConstruct_Curve* shapeConstruct){+ delete shapeConstruct;+}++Handle(Geom_BSplineCurve) * hs_ShapeConstruct_Curve_convertToBSpline(+ ShapeConstruct_Curve* shapeConstruct,+ Handle(Geom_Curve)* curve, + double first,+ double last,+ double precision+ ){+ return new opencascade::handle(shapeConstruct->ConvertToBSpline(*curve, first, last, precision));+}
+ cpp/hs_ShapeConstruct_Curve.h view
@@ -0,0 +1,26 @@+#ifndef HS_SHAPECONSTRUCT_CURVE_H+#define HS_SHAPECONSTRUCT_CURVE_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++ShapeConstruct_Curve * hs_new_ShapeConstruct_Curve();++void hs_delete_ShapeConstruct_Curve(ShapeConstruct_Curve* shapeConstruct);++Handle(Geom_BSplineCurve) * hs_ShapeConstruct_Curve_convertToBSpline(+ ShapeConstruct_Curve* shapeConstruct,+ Handle(Geom_Curve)* curve, + double first,+ double last,+ double precision+ );++#ifdef __cplusplus+}+#endif++#endif // HS_SHAPECONSTRUCT_CURVE_H
cpp/hs_types.h view
@@ -52,6 +52,8 @@ typedef void Geom2d_Ellipse; typedef void Geom_Curve; typedef void Geom_BezierCurve;+typedef void Geom_BSplineCurve;+typedef int GeomFill_Trihedron; typedef void BRepOffsetAPI_ThruSections; typedef void BRepMesh_IncrementalMesh; typedef void StlAPI_Writer;@@ -87,6 +89,18 @@ typedef int ShapeExtend_Status; typedef void Poly_Triangulation; typedef void Poly_Triangle;+typedef void BRepAdaptor_Curve;+typedef int GeomAbs_CurveType;+typedef void GeomConvert_BSplineCurveToBezierCurve;+typedef void GeomConvert_ApproxCurve;+typedef int GeomAbs_Shape;+typedef void GeomAdaptor_Curve;+typedef void ShapeConstruct_Curve;+typedef void HLRAlgo_Projector;+typedef void HLRBRep_Algo;+typedef void HLRBRep_HLRToShape;+typedef int HLRBRep_TypeOfResultingEdge;+ #define Handle(X) void #define ARRAY_1(X) void #else // __cplusplus
opencascade-hs.cabal view
@@ -1,11 +1,11 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.36.0.+-- This file has been generated from package.yaml by hpack version 0.37.0. -- -- see: https://github.com/sol/hpack name: opencascade-hs-version: 0.4.0.0+version: 0.5.0.0 synopsis: Thin Wrapper for the OpenCASCADE CAD Kernel description: Please see the README on GitHub at <https://github.com/joe-warren/opencascade-hs#readme> category: Graphics,FFI@@ -24,6 +24,7 @@ cpp/hs_Bnd_Box.h cpp/hs_Bnd_OBB.h cpp/hs_BRep_Tool.h+ cpp/hs_BRepAdaptor_Curve.h cpp/hs_BRepAlgoAPI_Common.h cpp/hs_BRepAlgoAPI_Cut.h cpp/hs_BRepAlgoAPI_Fuse.h@@ -58,8 +59,12 @@ cpp/hs_GC_MakeArcOfCircle.h cpp/hs_GC_MakeSegment.h cpp/hs_Geom_BezierCurve.h+ cpp/hs_Geom_BSplineCurve.h cpp/hs_Geom_Curve.h cpp/hs_Geom_TrimmedCurve.h+ cpp/hs_GeomAdaptor_Curve.h+ cpp/hs_GeomConvert_ApproxCurve.h+ cpp/hs_GeomConvert_BSplineCurveToBezierCurve.h cpp/hs_gp.h cpp/hs_gp_Ax1.h cpp/hs_gp_Ax2.h@@ -76,6 +81,9 @@ cpp/hs_gp_Vec2d.h cpp/hs_gp_XYZ.h cpp/hs_GProp_GProps.h+ cpp/hs_HLRAlgo_Projector.h+ cpp/hs_HLRBRep_Algo.h+ cpp/hs_HLRBRep_HLRToShape.h cpp/hs_Message_ProgressRange.h cpp/hs_NCollection_Array1.h cpp/hs_Poly_Triangle.h@@ -85,6 +93,7 @@ cpp/hs_RWMesh_CafReader.h cpp/hs_RWObj_CafReader.h cpp/hs_RWObj_CafWriter.h+ cpp/hs_ShapeConstruct_Curve.h cpp/hs_ShapeExtend_WireData.h cpp/hs_ShapeFix_Solid.h cpp/hs_STEPControl_Reader.h@@ -123,6 +132,10 @@ OpenCascade.Bnd.OBB OpenCascade.Bnd.Types OpenCascade.BRep.Tool+ OpenCascade.BRepAdaptor+ OpenCascade.BRepAdaptor.Curve+ OpenCascade.BRepAdaptor.Internal.Destructors+ OpenCascade.BRepAdaptor.Types OpenCascade.BRepAlgoAPI.Common OpenCascade.BRepAlgoAPI.Cut OpenCascade.BRepAlgoAPI.Fuse@@ -182,10 +195,22 @@ OpenCascade.GC.MakeSegment OpenCascade.Geom OpenCascade.Geom.BezierCurve+ OpenCascade.Geom.BSplineCurve OpenCascade.Geom.Curve OpenCascade.Geom.Internal.Destructors OpenCascade.Geom.Types+ OpenCascade.GeomAbs.CurveType OpenCascade.GeomAbs.JoinType+ OpenCascade.GeomAbs.Shape+ OpenCascade.GeomAdaptor.Curve+ OpenCascade.GeomAdaptor.Internal.Destructors+ OpenCascade.GeomAdaptor.Types+ OpenCascade.GeomConvert.ApproxCurve+ OpenCascade.GeomConvert.BSplineCurveToBezierCurve+ OpenCascade.GeomConvert.Internal.Destructors+ OpenCascade.GeomConvert.Types+ OpenCascade.GeomFill+ OpenCascade.GeomFill.Trihedron OpenCascade.GP OpenCascade.GP.Ax1 OpenCascade.GP.Ax2@@ -209,6 +234,14 @@ OpenCascade.Graphic3D.HorizontalTextAlignment OpenCascade.Graphic3D.VerticalTextAlignment OpenCascade.Handle+ OpenCascade.HLRAlgo.Internal.Destructors+ OpenCascade.HLRAlgo.Projector+ OpenCascade.HLRAlgo.Types+ OpenCascade.HLRBRep.Algo+ OpenCascade.HLRBRep.HLRToShape+ OpenCascade.HLRBRep.Internal.Destructors+ OpenCascade.HLRBRep.TypeOfResultingEdge+ OpenCascade.HLRBRep.Types OpenCascade.IFSelect.ReturnStatus OpenCascade.Inheritance OpenCascade.Internal.Bool@@ -233,6 +266,9 @@ OpenCascade.RWObj.CafWriter OpenCascade.RWObj.Internal.Destructors OpenCascade.RWObj.Types+ OpenCascade.ShapeConstruct.Curve+ OpenCascade.ShapeConstruct.Internal.Destructors+ OpenCascade.ShapeConstruct.Types OpenCascade.ShapeExtend.Internal.Destructors OpenCascade.ShapeExtend.Status OpenCascade.ShapeExtend.Types@@ -307,6 +343,7 @@ cpp/hs_Bnd_Box.cpp cpp/hs_Bnd_OBB.cpp cpp/hs_BRep_Tool.cpp+ cpp/hs_BRepAdaptor_Curve.cpp cpp/hs_BRepAlgoAPI_Common.cpp cpp/hs_BRepAlgoAPI_Cut.cpp cpp/hs_BRepAlgoAPI_Fuse.cpp@@ -341,8 +378,12 @@ cpp/hs_GC_MakeArcOfCircle.cpp cpp/hs_GC_MakeSegment.cpp cpp/hs_Geom_BezierCurve.cpp+ cpp/hs_Geom_BSplineCurve.cpp cpp/hs_Geom_Curve.cpp cpp/hs_Geom_TrimmedCurve.cpp+ cpp/hs_GeomAdaptor_Curve.cpp+ cpp/hs_GeomConvert_ApproxCurve.cpp+ cpp/hs_GeomConvert_BSplineCurveToBezierCurve.cpp cpp/hs_gp.cpp cpp/hs_gp_Ax1.cpp cpp/hs_gp_Ax2.cpp@@ -359,6 +400,9 @@ cpp/hs_gp_Vec2d.cpp cpp/hs_gp_XYZ.cpp cpp/hs_GProp_GProps.cpp+ cpp/hs_HLRAlgo_Projector.cpp+ cpp/hs_HLRBRep_Algo.cpp+ cpp/hs_HLRBRep_HLRToShape.cpp cpp/hs_Message_ProgressRange.cpp cpp/hs_NCollection_Array1.cpp cpp/hs_Poly_Triangle.cpp@@ -368,6 +412,7 @@ cpp/hs_RWMesh_CafReader.cpp cpp/hs_RWObj_CafReader.cpp cpp/hs_RWObj_CafWriter.cpp+ cpp/hs_ShapeConstruct_Curve.cpp cpp/hs_ShapeExtend_WireData.cpp cpp/hs_ShapeFix_Solid.cpp cpp/hs_STEPControl_Reader.cpp@@ -399,6 +444,7 @@ TKStd TKG3d TKG2d+ TKHLR TKMath TKernel TKBRep
+ src/OpenCascade/BRepAdaptor.hs view
@@ -0,0 +1,5 @@+module OpenCascade.BRepAdaptor+(Curve+) where++import OpenCascade.BRepAdaptor.Types (Curve)
+ src/OpenCascade/BRepAdaptor/Curve.hs view
@@ -0,0 +1,62 @@+{-# LANGUAGE CApiFFI #-} +module OpenCascade.BRepAdaptor.Curve+( Curve+, fromEdge+, curveType+, bezier+, bspline+, curve+, firstParameter+, lastParameter+) where+ +import OpenCascade.BRepAdaptor.Types (Curve)+import OpenCascade.BRepAdaptor.Internal.Destructors (deleteCurve)+import OpenCascade.Geom.Internal.Destructors (deleteHandleBezierCurve, deleteHandleBSplineCurve)+import qualified OpenCascade.Geom.Types as Geom+import OpenCascade.GeomAbs.CurveType (CurveType)+import qualified OpenCascade.TopoDS as TopoDS+import Foreign.Ptr (Ptr)+import Foreign.C (CInt (..), CDouble (..))+import Data.Acquire (Acquire, mkAcquire)+import OpenCascade.Handle (Handle)+import Data.Coerce (coerce)+import qualified OpenCascade.GeomAdaptor.Types as GeomAdaptor+import qualified OpenCascade.GeomAdaptor.Internal.Destructors as GeomAdaptor.Destructors++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_new_BRepAdaptor_Curve_fromEdge" rawFromEdge :: Ptr TopoDS.Edge -> IO (Ptr Curve)++fromEdge :: Ptr TopoDS.Edge -> Acquire (Ptr Curve)+fromEdge e = mkAcquire (rawFromEdge e) deleteCurve+++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_curveType" rawCurveType :: Ptr Curve -> IO (CInt)++curveType :: Ptr Curve -> IO CurveType+curveType c = toEnum . fromIntegral <$> rawCurveType c++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_bezier" rawBezier :: Ptr Curve -> IO (Ptr (Handle (Geom.BezierCurve)))++bezier :: Ptr Curve -> Acquire (Ptr (Handle Geom.BezierCurve))+bezier theCurve = mkAcquire (rawBezier theCurve) deleteHandleBezierCurve++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_bspline" rawBSpline :: Ptr Curve -> IO (Ptr (Handle (Geom.BSplineCurve)))++bspline :: Ptr Curve -> Acquire (Ptr (Handle Geom.BSplineCurve))+bspline theCurve = mkAcquire (rawBSpline theCurve) deleteHandleBSplineCurve+++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_curve" rawCurve :: Ptr Curve -> IO (Ptr GeomAdaptor.Curve)++curve :: Ptr Curve -> Acquire (Ptr GeomAdaptor.Curve)+curve theCurve = mkAcquire (rawCurve theCurve) GeomAdaptor.Destructors.deleteCurve++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_firstParameter" rawFirstParameter :: Ptr Curve -> IO CDouble++firstParameter :: Ptr Curve -> IO Double+firstParameter = coerce rawFirstParameter++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_BRepAdaptor_Curve_lastParameter" rawLastParameter :: Ptr Curve -> IO CDouble++lastParameter :: Ptr Curve -> IO Double+lastParameter = coerce rawLastParameter
+ src/OpenCascade/BRepAdaptor/Internal/Destructors.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CApiFFI #-} +module OpenCascade.BRepAdaptor.Internal.Destructors+( deleteCurve+) where++import OpenCascade.BRepAdaptor.Types (Curve)+import Foreign.Ptr++foreign import capi unsafe "hs_BRepAdaptor_Curve.h hs_delete_BRepAdaptor_Curve" deleteCurve :: Ptr Curve -> IO ()+
+ src/OpenCascade/BRepAdaptor/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.BRepAdaptor.Types +( Curve+) where++data Curve
src/OpenCascade/BRepBuilderAPI/MakeShape.hs view
@@ -2,6 +2,7 @@ module OpenCascade.BRepBuilderAPI.MakeShape ( MakeShape , shape+, build ) where import OpenCascade.BRepBuilderAPI.Types import qualified OpenCascade.TopoDS as TopoDS@@ -13,3 +14,5 @@ shape :: Ptr MakeShape -> Acquire (Ptr TopoDS.Shape) shape builder = mkAcquire (rawShape builder) (deleteShape) ++foreign import capi unsafe "hs_BRepBuilderAPI_MakeShape.h hs_BRepBuilderAPI_MakeShape_build" build :: Ptr MakeShape -> IO ()
src/OpenCascade/BRepFilletAPI/MakeFillet.hs view
@@ -5,16 +5,25 @@ , addEdge , addEdgeWithRadius , addEdgeWithTwoRadiuses+, reset+, nbFaultyContours+, faultyContour+, nbEdges+, edge+, remove ) where import OpenCascade.BRepFilletAPI.Types (MakeFillet) import OpenCascade.BRepFilletAPI.Internal.Destructors (deleteMakeFillet) import qualified OpenCascade.TopoDS as TopoDS+import OpenCascade.TopoDS.Internal.Destructors (deleteShape)+import OpenCascade.Inheritance (upcast) import Foreign.Ptr import Foreign.C import Data.Acquire import Data.Coerce (coerce) + foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_new_BRepFilletAPI_MakeFillet_fromShape" rawFromShape :: Ptr TopoDS.Shape -> IO (Ptr MakeFillet) fromShape :: Ptr TopoDS.Shape -> Acquire (Ptr MakeFillet)@@ -27,8 +36,31 @@ addEdgeWithRadius :: Ptr MakeFillet -> Double -> Ptr TopoDS.Edge -> IO () addEdgeWithRadius = coerce rawAddEdgeWithRadius - foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_addEdgeWithTwoRadiuses" rawAddEdgeWithTwoRadiuses :: Ptr MakeFillet -> CDouble -> CDouble -> Ptr TopoDS.Edge -> IO () addEdgeWithTwoRadiuses :: Ptr MakeFillet -> Double -> Double -> Ptr TopoDS.Edge -> IO () addEdgeWithTwoRadiuses = coerce rawAddEdgeWithTwoRadiuses++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_reset" reset :: Ptr MakeFillet -> IO ()++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_nbFaultyContours" rawNbFaultyContours :: Ptr MakeFillet -> IO CInt++nbFaultyContours :: Ptr MakeFillet -> IO Int+nbFaultyContours = fmap fromIntegral . rawNbFaultyContours++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_faultyContour" rawFaultyContour :: Ptr MakeFillet -> CInt -> IO CInt++faultyContour :: Ptr MakeFillet -> Int -> IO Int+faultyContour builder index = fromIntegral <$> rawFaultyContour builder (fromIntegral index)++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_nbEdges" rawNbEdges :: Ptr MakeFillet -> CInt -> IO CInt++nbEdges :: Ptr MakeFillet -> Int -> IO Int+nbEdges builder index = fromIntegral <$> rawNbEdges builder (fromIntegral index)++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_edge" rawEdge :: Ptr MakeFillet -> CInt -> CInt -> IO (Ptr TopoDS.Edge)++edge :: Ptr MakeFillet -> Int -> Int -> Acquire (Ptr TopoDS.Edge)+edge builder contourIndex edgeIndex = mkAcquire (rawEdge builder (fromIntegral contourIndex) (fromIntegral edgeIndex)) (deleteShape . upcast)++foreign import capi unsafe "hs_BRepFilletAPI_MakeFillet.h hs_BRepFilletAPI_MakeFillet_remove" remove :: Ptr MakeFillet -> Ptr TopoDS.Edge -> IO ()
src/OpenCascade/BRepLib.hs view
@@ -1,14 +1,25 @@ {-# LANGUAGE CApiFFI#-} module OpenCascade.BRepLib ( orientClosedSolid+, buildCurve3d ) where -import OpenCascade.TopoDS.Types (Solid)+import OpenCascade.TopoDS.Types (Solid, Edge)+import qualified OpenCascade.GeomAbs.Shape as GeomAbs.Shape import Foreign.Ptr (Ptr)-import Foreign.C (CBool (..))+import Foreign.C (CBool (..), CDouble (..), CInt (..)) import OpenCascade.Internal.Bool (cBoolToBool)+import Data.Coerce (coerce) foreign import capi unsafe "hs_BRepLib.h hs_BRepLib_orientClosedSolid" rawOrientClosedSolid :: Ptr Solid -> IO (CBool) orientClosedSolid :: Ptr Solid -> IO Bool orientClosedSolid s = cBoolToBool <$> rawOrientClosedSolid s+++foreign import capi unsafe "hs_BRepLib.h hs_BRepLib_buildCurve3d" rawBuildCurve3d :: Ptr Edge -> CDouble -> CInt -> CInt -> CInt -> IO CBool++buildCurve3d :: Ptr Edge -> Double -> GeomAbs.Shape.Shape -> Int -> Int -> IO Bool+buildCurve3d edge tolerance continuity maxDegree maxSegment = + cBoolToBool <$> rawBuildCurve3d edge (coerce tolerance) (fromIntegral . fromEnum $ continuity) (fromIntegral maxDegree) (fromIntegral maxSegment)+
src/OpenCascade/BRepOffsetAPI/MakePipe.hs view
@@ -2,15 +2,24 @@ module OpenCascade.BRepOffsetAPI.MakePipe ( MakePipe , fromWireAndShape+, fromWireShapeTrihedronModeAndForceC1 ) where import OpenCascade.BRepOffsetAPI.Types (MakePipe) import OpenCascade.BRepOffsetAPI.Internal.Destructors (deleteMakePipe) import qualified OpenCascade.TopoDS as TopoDS+import qualified OpenCascade.GeomFill as GeomFill import Foreign.Ptr+import Foreign.C (CBool (..), CInt (..))+import OpenCascade.Internal.Bool (boolToCBool) import Data.Acquire foreign import capi unsafe "hs_BRepOffsetAPI_MakePipe.h hs_new_BRepOffsetAPI_MakePipe_fromWireAndShape" rawFromWireAndShape :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> IO (Ptr MakePipe) fromWireAndShape :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> Acquire (Ptr MakePipe) fromWireAndShape wire profile = mkAcquire (rawFromWireAndShape wire profile) deleteMakePipe++foreign import capi unsafe "hs_BRepOffsetAPI_MakePipe.h hs_new_BRepOffsetAPI_MakePipe_fromWireShapeTrihedronModeAndForceC1" rawFromWireShapeTrihedronModeAndForceC1 :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> CInt -> CBool -> IO (Ptr MakePipe)+fromWireShapeTrihedronModeAndForceC1 :: Ptr TopoDS.Wire -> Ptr TopoDS.Shape -> GeomFill.Trihedron -> Bool -> Acquire (Ptr MakePipe)+fromWireShapeTrihedronModeAndForceC1 wire profile trihedronMode forceC1 =+ mkAcquire (rawFromWireShapeTrihedronModeAndForceC1 wire profile ((fromIntegral . fromEnum $ trihedronMode)) (boolToCBool forceC1)) deleteMakePipe
+ src/OpenCascade/Geom/BSplineCurve.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.Geom.BSplineCurve +( toHandle+, nbPoles+, pole+, isRational+, segment+) where+import Foreign.Ptr+import Foreign.C (CInt (..), CBool (..), CDouble (..))+import Data.Acquire+import OpenCascade.Geom.Types (BSplineCurve)+import OpenCascade.Geom.Internal.Destructors (deleteHandleBSplineCurve)+import OpenCascade.Handle (Handle)+import OpenCascade.Internal.Bool (cBoolToBool)+import OpenCascade.GP (Pnt)+import OpenCascade.GP.Internal.Destructors (deletePnt)+import Data.Coerce (coerce)++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_Geom_BSplineCurve_toHandle" rawToHandle :: Ptr BSplineCurve -> IO (Ptr (Handle BSplineCurve))++toHandle :: Ptr BSplineCurve -> Acquire (Ptr (Handle BSplineCurve))+toHandle curve = mkAcquire (rawToHandle curve) deleteHandleBSplineCurve++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_Geom_BSplineCurve_nbPoles" rawNbPoles :: Ptr (Handle BSplineCurve) -> IO (CInt)++nbPoles :: Ptr (Handle (BSplineCurve)) -> IO Int +nbPoles h = fromIntegral <$> rawNbPoles h++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_Geom_BSplineCurve_pole" rawPole :: Ptr (Handle BSplineCurve) -> CInt -> IO (Ptr Pnt)++pole :: Ptr (Handle BSplineCurve) -> Int -> Acquire (Ptr Pnt)+pole h n = mkAcquire (rawPole h (fromIntegral n)) deletePnt++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_Geom_BSplineCurve_isRational" rawIsRational :: Ptr (Handle BSplineCurve) -> IO (CBool)++isRational :: Ptr (Handle (BSplineCurve)) -> IO Bool+isRational h = cBoolToBool <$> rawIsRational h++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_Geom_BSplineCurve_segment" rawSegment :: Ptr (Handle BSplineCurve) -> CDouble -> CDouble -> CDouble -> IO ()++segment :: Ptr (Handle BSplineCurve) -> Double -> Double -> Double -> IO ()+segment = coerce rawSegment+
src/OpenCascade/Geom/BezierCurve.hs view
@@ -2,14 +2,24 @@ module OpenCascade.Geom.BezierCurve ( fromPnts , toHandle+, nbPoles+, pole+, isRational+, segment ) where import Foreign.Ptr+import Foreign.C (CInt (..), CBool (..), CDouble (..)) import Data.Acquire+import Data.Coerce (coerce) import OpenCascade.Geom.Types (BezierCurve) import OpenCascade.Geom.Internal.Destructors (deleteBezierCurve, deleteHandleBezierCurve)+import OpenCascade.GP.Internal.Destructors (deletePnt) import OpenCascade.GP (Pnt) import OpenCascade.NCollection (Array1) import OpenCascade.Handle (Handle)+import OpenCascade.Internal.Bool (cBoolToBool)++ foreign import capi unsafe "hs_Geom_BezierCurve.h hs_new_Geom_BezierCurve_fromPnts" rawFromPnts :: Ptr (Array1 Pnt) -> IO(Ptr BezierCurve) fromPnts :: Ptr (Array1 Pnt) -> Acquire (Ptr BezierCurve)@@ -21,4 +31,22 @@ toHandle curve = mkAcquire (rawToHandle curve) deleteHandleBezierCurve +foreign import capi unsafe "hs_Geom_BezierCurve.h hs_Geom_BezierCurve_nbPoles" rawNbPoles :: Ptr (Handle BezierCurve) -> IO (CInt) +nbPoles :: Ptr (Handle (BezierCurve)) -> IO Int +nbPoles h = fromIntegral <$> rawNbPoles h++foreign import capi unsafe "hs_Geom_BezierCurve.h hs_Geom_BezierCurve_pole" rawPole :: Ptr (Handle BezierCurve) -> CInt -> IO (Ptr Pnt)++pole :: Ptr (Handle BezierCurve) -> Int -> Acquire (Ptr Pnt)+pole h n = mkAcquire (rawPole h (fromIntegral n)) deletePnt++foreign import capi unsafe "hs_Geom_BezierCurve.h hs_Geom_BezierCurve_isRational" rawIsRational :: Ptr (Handle BezierCurve) -> IO (CBool)++isRational :: Ptr (Handle (BezierCurve)) -> IO Bool+isRational h = cBoolToBool <$> rawIsRational h++foreign import capi unsafe "hs_Geom_BezierCurve.h hs_Geom_BezierCurve_segment" rawSegment :: Ptr (Handle BezierCurve) -> CDouble -> CDouble -> IO ()++segment :: Ptr (Handle BezierCurve) -> Double -> Double -> IO ()+segment = coerce rawSegment
src/OpenCascade/Geom/Curve.hs view
@@ -1,6 +1,8 @@ {-# LANGUAGE CApiFFI #-} module OpenCascade.Geom.Curve ( value+, firstParameter+, lastParameter , dn , reversedParameter , reversed@@ -20,6 +22,16 @@ value :: Ptr (Handle Curve) -> Double -> Acquire (Ptr Pnt) value curve u = mkAcquire (rawValue curve (coerce u)) deletePnt +foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_firstParameter" rawFirstParameter :: Ptr (Handle Curve)-> IO (CDouble)++firstParameter :: Ptr (Handle Curve) -> IO Double+firstParameter = coerce rawFirstParameter++foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_lastParameter" rawLastParameter :: Ptr (Handle Curve)-> IO (CDouble)++lastParameter :: Ptr (Handle Curve) -> IO Double+lastParameter = coerce rawLastParameter+ foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_dn" rawDN :: Ptr (Handle Curve) -> CDouble -> CInt -> IO (Ptr Vec) dn :: Ptr (Handle Curve) -> Double -> Int -> Acquire (Ptr Vec)@@ -29,7 +41,6 @@ reversedParameter :: Ptr (Handle Curve) -> Double -> IO Double reversedParameter = coerce rawReversedParameter- foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_reversed" rawReversed :: Ptr (Handle Curve) -> IO (Ptr (Handle Curve))
src/OpenCascade/Geom/Internal/Destructors.hs view
@@ -3,6 +3,7 @@ ( deleteHandleCurve , deleteHandleTrimmedCurve , deleteHandleBezierCurve+, deleteHandleBSplineCurve , deleteBezierCurve ) where @@ -17,5 +18,7 @@ foreign import capi unsafe "hs_Geom_TrimmedCurve.h hs_delete_Handle_Geom_TrimmedCurve" deleteHandleTrimmedCurve :: Ptr (Handle TrimmedCurve) -> IO () foreign import capi unsafe "hs_Geom_BezierCurve.h hs_delete_Handle_Geom_BezierCurve" deleteHandleBezierCurve :: Ptr (Handle BezierCurve) -> IO ()++foreign import capi unsafe "hs_Geom_BSplineCurve.h hs_delete_Handle_Geom_BSplineCurve" deleteHandleBSplineCurve :: Ptr (Handle BSplineCurve) -> IO () foreign import capi unsafe "hs_Geom_BezierCurve.h hs_delete_Geom_BezierCurve" deleteBezierCurve :: Ptr BezierCurve -> IO ()
src/OpenCascade/Geom/Types.hs view
@@ -4,6 +4,7 @@ ( Curve , TrimmedCurve , BezierCurve+, BSplineCurve , Surface ) where @@ -12,7 +13,9 @@ data Curve data TrimmedCurve data BezierCurve+data BSplineCurve data Surface instance SubTypeOf Curve TrimmedCurve instance SubTypeOf Curve BezierCurve+instance SubTypeOf Curve BSplineCurve
+ src/OpenCascade/GeomAbs/CurveType.hs view
@@ -0,0 +1,16 @@+module OpenCascade.GeomAbs.CurveType+( CurveType (..)+) where++-- This needs to stay up to date with GeomAbs_CurveType.hxx+data CurveType+ = Line + | Circle+ | Ellipse+ | Hyperbola + | Parabola + | BezierCurve+ | BSplineCurve+ | OffsetCurve+ | OtherCurve+ deriving (Enum, Show)
+ src/OpenCascade/GeomAbs/Shape.hs view
@@ -0,0 +1,7 @@+module OpenCascade.GeomAbs.Shape +( Shape (..)+) where ++-- This needs to stay up to date with GeomAbs_Shape.hxx+data Shape = C0 | G1 | C1 | G2 | C2 | C3 | CN + deriving (Enum, Show)
+ src/OpenCascade/GeomAdaptor/Curve.hs view
@@ -0,0 +1,39 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.GeomAdaptor.Curve+( Curve+, fromHandle+, firstParameter+, lastParameter+, curve+) where++import OpenCascade.GeomAdaptor.Types (Curve)+import qualified OpenCascade.Geom.Types as Geom+import qualified OpenCascade.Geom.Internal.Destructors as Geom.Destructors+import OpenCascade.GeomAdaptor.Internal.Destructors (deleteCurve)+import OpenCascade.Handle (Handle)+import Foreign.C (CDouble (..))+import Data.Coerce (coerce)+import Foreign.Ptr +import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_GeomAdaptor_Curve.h hs_new_GeomAdaptor_Curve_fromHandle" rawFromHandle :: Ptr (Handle Geom.Curve) -> IO (Ptr Curve)++fromHandle :: Ptr (Handle Geom.Curve) -> Acquire (Ptr Curve)+fromHandle h = mkAcquire (rawFromHandle h) deleteCurve+++foreign import capi unsafe "hs_GeomAdaptor_Curve.h hs_GeomAdaptor_Curve_curve" rawCurve :: Ptr Curve -> IO (Ptr (Handle Geom.Curve))++curve :: Ptr Curve -> Acquire (Ptr (Handle Geom.Curve))+curve adaptor = mkAcquire (rawCurve adaptor) Geom.Destructors.deleteHandleCurve++foreign import capi unsafe "hs_GeomAdaptor_Curve.h hs_GeomAdaptor_Curve_firstParameter" rawFirstParameter :: Ptr Curve-> IO (CDouble)++firstParameter :: Ptr Curve -> IO Double+firstParameter = coerce rawFirstParameter++foreign import capi unsafe "hs_GeomAdaptor_Curve.h hs_GeomAdaptor_Curve_lastParameter" rawLastParameter :: Ptr Curve -> IO (CDouble)++lastParameter :: Ptr Curve -> IO Double+lastParameter = coerce rawLastParameter
+ src/OpenCascade/GeomAdaptor/Internal/Destructors.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CApiFFI #-} +module OpenCascade.GeomAdaptor.Internal.Destructors+( deleteCurve+) where++import OpenCascade.GeomAdaptor.Types (Curve)+import Foreign.Ptr++foreign import capi unsafe "hs_GeomAdaptor_Curve.h hs_delete_GeomAdaptor_Curve" deleteCurve :: Ptr Curve -> IO ()+
+ src/OpenCascade/GeomAdaptor/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.GeomAdaptor.Types +( Curve+) where++data Curve
+ src/OpenCascade/GeomConvert/ApproxCurve.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.GeomConvert.ApproxCurve+( ApproxCurve+, fromCurveToleranceOrderSegmentsAndDegree+, curve+, isDone+, hasResult+) where ++import OpenCascade.GeomConvert.Types (ApproxCurve)+import OpenCascade.GeomConvert.Internal.Destructors (deleteApproxCurve)+import OpenCascade.Geom.Internal.Destructors (deleteHandleBSplineCurve)+import qualified OpenCascade.GeomAbs.Shape as GeomAbs.Shape+import Foreign.Ptr (Ptr)+import Foreign.C (CInt (..), CDouble (..), CBool (..))+import Data.Coerce (coerce)+import Data.Acquire (Acquire, mkAcquire)+import OpenCascade.Handle (Handle)+import OpenCascade.Geom.Types as Geom+import OpenCascade.Internal.Bool (cBoolToBool)++foreign import capi unsafe "hs_GeomConvert_ApproxCurve.h hs_new_GeomConvert_ApproxCurve_fromCurveToleranceOrderSegmentsAndDegree" rawFromCurveToleranceOrderSegmentsAndDegree :: Ptr (Handle Geom.Curve) -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr ApproxCurve)++fromCurveToleranceOrderSegmentsAndDegree :: Ptr (Handle Geom.Curve) -> Double -> GeomAbs.Shape.Shape -> Int -> Int -> Acquire (Ptr ApproxCurve)+fromCurveToleranceOrderSegmentsAndDegree theCurve tolerance order maxSegments maxDegree = + mkAcquire + (rawFromCurveToleranceOrderSegmentsAndDegree + theCurve+ (coerce tolerance)+ (fromIntegral . fromEnum $ order)+ (fromIntegral maxSegments)+ (fromIntegral maxDegree)) + deleteApproxCurve+++foreign import capi unsafe "hs_GeomConvert_ApproxCurve.h hs_GeomConvert_ApproxCurve_curve" rawCurve :: Ptr ApproxCurve -> IO (Ptr (Handle Geom.BSplineCurve))++curve :: Ptr ApproxCurve -> Acquire (Ptr (Handle Geom.BSplineCurve))+curve approxCurve = mkAcquire (rawCurve approxCurve) deleteHandleBSplineCurve++foreign import capi unsafe "hs_GeomConvert_ApproxCurve.h hs_GeomConvert_ApproxCurve_isDone" rawIsDone :: Ptr ApproxCurve -> IO (CBool)++isDone :: Ptr ApproxCurve -> IO Bool+isDone approxCurve = cBoolToBool <$> rawIsDone approxCurve+++foreign import capi unsafe "hs_GeomConvert_ApproxCurve.h hs_GeomConvert_ApproxCurve_hasResult" rawHasResult :: Ptr ApproxCurve -> IO (CBool)++hasResult :: Ptr ApproxCurve -> IO Bool+hasResult approxCurve = cBoolToBool <$> rawHasResult approxCurve
+ src/OpenCascade/GeomConvert/BSplineCurveToBezierCurve.hs view
@@ -0,0 +1,38 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.GeomConvert.BSplineCurveToBezierCurve+( BSplineCurveToBezierCurve+, fromHandle +, fromHandleParametersAndTolerance+, nbArcs+, arc+) where++import OpenCascade.GeomConvert.Types (BSplineCurveToBezierCurve)+import OpenCascade.GeomConvert.Internal.Destructors (deleteBSplineCurveToBezierCurve)+import OpenCascade.Geom.Internal.Destructors (deleteHandleBezierCurve)+import qualified OpenCascade.Geom.Types as Geom+import OpenCascade.Handle (Handle)+import Foreign.Ptr (Ptr)+import Foreign.C (CInt (..), CDouble (..))+import Data.Coerce (coerce)+import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_GeomConvert_BSplineCurveToBezierCurve.h hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandle" rawFromHandle :: Ptr (Handle Geom.BSplineCurve) -> IO(Ptr BSplineCurveToBezierCurve)++fromHandle :: Ptr (Handle Geom.BSplineCurve) -> Acquire (Ptr BSplineCurveToBezierCurve)+fromHandle h = mkAcquire (rawFromHandle h) (deleteBSplineCurveToBezierCurve)++foreign import capi unsafe "hs_GeomConvert_BSplineCurveToBezierCurve.h hs_new_GeomConvert_BSplineCurveToBezierCurve_fromHandleParametersAndTolerance" rawFromHandleParametersAndTolerance :: Ptr (Handle Geom.BSplineCurve) -> CDouble -> CDouble -> CDouble -> IO(Ptr BSplineCurveToBezierCurve)++fromHandleParametersAndTolerance :: Ptr (Handle Geom.BSplineCurve) -> Double -> Double -> Double -> Acquire (Ptr BSplineCurveToBezierCurve)+fromHandleParametersAndTolerance h firstParam secondParam tolerance= mkAcquire (rawFromHandleParametersAndTolerance h (coerce firstParam) (coerce secondParam) (coerce tolerance)) (deleteBSplineCurveToBezierCurve)++foreign import capi unsafe "hs_GeomConvert_BSplineCurveToBezierCurve.h hs_GeomConvert_BSplineCurveToBezierCurve_nbArcs" rawNbArcs :: Ptr (BSplineCurveToBezierCurve) -> IO CInt++nbArcs :: Ptr BSplineCurveToBezierCurve -> IO Int+nbArcs p = fromIntegral <$> rawNbArcs p++foreign import capi unsafe "hs_GeomConvert_BSplineCurveToBezierCurve.h hs_GeomConvert_BSplineCurveToBezierCurve_arc" rawArc :: Ptr (BSplineCurveToBezierCurve) -> CInt -> IO (Ptr (Handle Geom.BezierCurve))++arc :: Ptr BSplineCurveToBezierCurve -> Int -> Acquire (Ptr (Handle Geom.BezierCurve))+arc p n = mkAcquire (rawArc p (fromIntegral n)) deleteHandleBezierCurve
+ src/OpenCascade/GeomConvert/Internal/Destructors.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.GeomConvert.Internal.Destructors +( deleteBSplineCurveToBezierCurve+, deleteApproxCurve+) where++import OpenCascade.GeomConvert.Types++import Foreign.Ptr++foreign import capi unsafe "hs_GeomConvert_BSplineCurveToBezierCurve.h hs_delete_GeomConvert_BSplineCurveToBezierCurve" deleteBSplineCurveToBezierCurve :: Ptr BSplineCurveToBezierCurve -> IO ()+foreign import capi unsafe "hs_GeomConvert_ApproxCurve.h hs_delete_GeomConvert_ApproxCurve" deleteApproxCurve :: Ptr ApproxCurve -> IO ()
+ src/OpenCascade/GeomConvert/Types.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.GeomConvert.Types+( BSplineCurveToBezierCurve+, ApproxCurve+) where++data BSplineCurveToBezierCurve+data ApproxCurve
+ src/OpenCascade/GeomFill.hs view
@@ -0,0 +1,4 @@+module OpenCascade.GeomFill (+ Trihedron+) where +import OpenCascade.GeomFill.Trihedron
+ src/OpenCascade/GeomFill/Trihedron.hs view
@@ -0,0 +1,8 @@+module OpenCascade.GeomFill.Trihedron+( Trihedron (..)+) where++-- this should match the enumeration in GeomFill_Trihedron+data Trihedron = IsCorrectedFrenet | IsFixed | IsFrenet | IsConstantNormal |+ IsDarboux | IsGuideAC | IsGuidePlan | IsGuideACWithContact |+ IsGuidePlanWithContact | IsDiscreteTrihedron deriving (Show, Eq, Enum)
+ src/OpenCascade/HLRAlgo/Internal/Destructors.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.HLRAlgo.Internal.Destructors +( deleteProjector+) where++import OpenCascade.HLRAlgo.Types+++import Foreign.Ptr++foreign import capi unsafe "hs_HLRAlgo_Projector.h hs_delete_HLRAlgo_Projector" deleteProjector :: Ptr Projector -> IO ()+
+ src/OpenCascade/HLRAlgo/Projector.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.HLRAlgo.Projector+( Projector+, fromAx2+) where+import qualified OpenCascade.GP.Types as GP+import OpenCascade.HLRAlgo.Types (Projector)+import OpenCascade.HLRAlgo.Internal.Destructors (deleteProjector)+import Foreign.Ptr +import Data.Acquire (mkAcquire, Acquire)++foreign import capi unsafe "hs_HLRAlgo_Projector.h hs_new_HLRAlgo_Projector_fromAx2" rawFromAx2 :: Ptr GP.Ax2 -> IO (Ptr Projector)++fromAx2 :: Ptr GP.Ax2 -> Acquire (Ptr Projector)+fromAx2 ax2 = mkAcquire (rawFromAx2 ax2) deleteProjector+
+ src/OpenCascade/HLRAlgo/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.HLRAlgo.Types+( Projector+) where++data Projector
+ src/OpenCascade/HLRBRep/Algo.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.HLRBRep.Algo+( Algo+, new+, projector+, update+, hide+, add+) where+import OpenCascade.HLRBRep.Types (Algo)+import qualified OpenCascade.HLRAlgo.Types as HLRAlgo+import qualified OpenCascade.TopoDS.Types as TopoDS+import OpenCascade.HLRBRep.Internal.Destructors (deleteAlgo)+import Foreign.Ptr +import Data.Acquire (mkAcquire, Acquire)+import OpenCascade.Handle++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_new_HLRBRep_Algo" rawNew :: IO (Ptr (Handle Algo))++new :: Acquire (Ptr (Handle Algo))+new = mkAcquire rawNew deleteAlgo++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_projector" projector :: Ptr (Handle Algo) -> Ptr HLRAlgo.Projector -> IO ()++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_add" add :: Ptr (Handle Algo) -> Ptr TopoDS.Shape -> IO ()++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_update" update :: Ptr (Handle Algo) -> IO ()++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_HLRBRep_Algo_hide" hide :: Ptr (Handle Algo) -> IO ()
+ src/OpenCascade/HLRBRep/HLRToShape.hs view
@@ -0,0 +1,30 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.HLRBRep.HLRToShape+( HLRToShape+, fromAlgo+, compoundOfEdges+) where++import OpenCascade.HLRBRep.Types (Algo, HLRToShape)+import OpenCascade.HLRBRep.TypeOfResultingEdge (TypeOfResultingEdge)+import qualified OpenCascade.TopoDS.Types as TopoDS+import OpenCascade.TopoDS.Internal.Destructors (deleteShape)+import OpenCascade.HLRBRep.Internal.Destructors (deleteHLRToShape)+import Foreign.Ptr +import Data.Acquire (mkAcquire, Acquire)+import OpenCascade.Handle+import Foreign.C (CInt (..), CBool (..))+import OpenCascade.Internal.Bool (boolToCBool)++foreign import capi unsafe "hs_HLRBRep_HLRToShape.h hs_new_HLRBRep_HLRToShape_fromHandleAlgo" rawFromHandleAlgo :: Ptr (Handle Algo) -> IO (Ptr HLRToShape)++fromAlgo :: Ptr (Handle Algo) -> Acquire (Ptr HLRToShape)+fromAlgo algo = mkAcquire (rawFromHandleAlgo algo) deleteHLRToShape++foreign import capi unsafe "hs_HLRBRep_HLRToShape.h hs_HLRBRep_HLRToShape_compoundOfEdges" rawCompoundOfEdges :: Ptr HLRToShape -> CInt -> CBool -> CBool -> IO (Ptr TopoDS.Shape)++compoundOfEdges :: Ptr HLRToShape -> TypeOfResultingEdge -> Bool -> Bool -> Acquire (Ptr TopoDS.Shape)+compoundOfEdges hlrToShape typeOfEdge visible in3d =+ mkAcquire + (rawCompoundOfEdges hlrToShape (fromIntegral . fromEnum $ typeOfEdge) (boolToCBool visible) (boolToCBool in3d))+ deleteShape
+ src/OpenCascade/HLRBRep/Internal/Destructors.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.HLRBRep.Internal.Destructors +( deleteAlgo+, deleteHLRToShape+) where++import OpenCascade.HLRBRep.Types+import OpenCascade.Handle++import Foreign.Ptr++foreign import capi unsafe "hs_HLRBRep_Algo.h hs_delete_HLRBRep_Algo" deleteAlgo :: Ptr (Handle Algo) -> IO ()+foreign import capi unsafe "hs_HLRBRep_HLRToShape.h hs_delete_HLRBRep_HLRToShape" deleteHLRToShape :: Ptr HLRToShape -> IO ()
+ src/OpenCascade/HLRBRep/TypeOfResultingEdge.hs view
@@ -0,0 +1,12 @@+module OpenCascade.HLRBRep.TypeOfResultingEdge+( TypeOfResultingEdge (..)+) where ++data TypeOfResultingEdge + = Undefined+ | IsoLine+ | OutLine+ | Rg1Line+ | RgNLine+ | Sharp+ deriving (Eq, Ord, Enum, Show)
+ src/OpenCascade/HLRBRep/Types.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.HLRBRep.Types+( Algo+, HLRToShape+) where++data Algo+data HLRToShape
+ src/OpenCascade/ShapeConstruct/Curve.hs view
@@ -0,0 +1,28 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.ShapeConstruct.Curve+( Curve+, new+, convertToBSpline+) where++import OpenCascade.ShapeConstruct.Types (Curve)+import OpenCascade.ShapeConstruct.Internal.Destructors (deleteCurve)+import qualified OpenCascade.Geom.Types as Geom+import OpenCascade.Geom.Internal.Destructors (deleteHandleBSplineCurve)+import OpenCascade.Handle (Handle)+import Foreign.Ptr+import Foreign.C (CDouble (..))+import Data.Acquire (Acquire, mkAcquire)+import Data.Coerce (coerce)++foreign import capi unsafe "hs_ShapeConstruct_Curve.h hs_new_ShapeConstruct_Curve" rawNew :: IO (Ptr Curve)++new :: Acquire (Ptr Curve)+new = mkAcquire rawNew deleteCurve++foreign import capi unsafe "hs_ShapeConstruct_Curve.h hs_ShapeConstruct_Curve_convertToBSpline" rawConvertToBSpline :: Ptr Curve -> Ptr (Handle Geom.Curve) -> CDouble -> CDouble -> CDouble -> IO (Ptr (Handle Geom.BSplineCurve))++convertToBSpline :: Ptr Curve -> Ptr (Handle Geom.Curve) -> Double -> Double -> Double -> Acquire (Ptr (Handle Geom.BSplineCurve))+convertToBSpline shapeConstruct handleCurve firstParam lastParam precision = + mkAcquire (rawConvertToBSpline shapeConstruct handleCurve (coerce firstParam) (coerce lastParam) (coerce precision)) deleteHandleBSplineCurve+
+ src/OpenCascade/ShapeConstruct/Internal/Destructors.hs view
@@ -0,0 +1,9 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.ShapeConstruct.Internal.Destructors+( deleteCurve+) where++import OpenCascade.ShapeConstruct.Types+import Foreign.Ptr ++foreign import capi unsafe "hs_ShapeConstruct_Curve.h hs_delete_ShapeConstruct_Curve" deleteCurve :: Ptr Curve -> IO ()
+ src/OpenCascade/ShapeConstruct/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.ShapeConstruct.Types+( Curve+) where++data Curve