packages feed

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 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