packages feed

opencascade-hs 0.3.0.1 → 0.4.0.0

raw patch · 28 files changed

+326/−6 lines, 28 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ OpenCascade.BRep.Tool: pnt :: Ptr Vertex -> Acquire (Ptr Pnt)
+ OpenCascade.BRepBuilderAPI.Internal.Destructors: deleteMakeVertex :: Ptr MakeVertex -> IO ()
+ OpenCascade.BRepBuilderAPI.MakeVertex: data MakeVertex
+ OpenCascade.BRepBuilderAPI.MakeVertex: fromPnt :: Ptr Pnt -> Acquire (Ptr MakeVertex)
+ OpenCascade.BRepBuilderAPI.MakeVertex: vertex :: Ptr MakeVertex -> Acquire (Ptr Vertex)
+ OpenCascade.BRepBuilderAPI.MakeWire: vertex :: Ptr MakeWire -> Acquire (Ptr Vertex)
+ OpenCascade.BRepBuilderAPI.Types: data MakeVertex
+ OpenCascade.BRepBuilderAPI.Types: instance OpenCascade.Inheritance.SubTypeOf OpenCascade.BRepBuilderAPI.Types.MakeShape OpenCascade.BRepBuilderAPI.Types.MakeVertex
+ OpenCascade.BRepBuilderAPI.WireError: instance GHC.Show.Show OpenCascade.BRepBuilderAPI.WireError.WireError
+ OpenCascade.BRepOffsetAPI.Internal.Destructors: deleteThruSections :: Ptr ThruSections -> IO ()
+ OpenCascade.BRepOffsetAPI.ThruSections: addVertex :: Ptr ThruSections -> Ptr Vertex -> IO ()
+ OpenCascade.BRepOffsetAPI.ThruSections: addWire :: Ptr ThruSections -> Ptr Wire -> IO ()
+ OpenCascade.BRepOffsetAPI.ThruSections: data ThruSections
+ OpenCascade.BRepOffsetAPI.ThruSections: new :: Bool -> Bool -> Double -> Acquire (Ptr ThruSections)
+ OpenCascade.BRepOffsetAPI.Types: data ThruSections
+ OpenCascade.BRepOffsetAPI.Types: instance OpenCascade.Inheritance.SubTypeOf OpenCascade.BRepBuilderAPI.Types.MakeShape OpenCascade.BRepOffsetAPI.Types.ThruSections
+ OpenCascade.Geom.Curve: reversed :: Ptr (Handle Curve) -> Acquire (Ptr (Handle Curve))
+ OpenCascade.Geom.Curve: reversedParameter :: Ptr (Handle Curve) -> Double -> IO Double
+ OpenCascade.ShapeExtend.Internal.Destructors: deleteWireData :: Ptr WireData -> IO ()
+ OpenCascade.ShapeExtend.Types: data WireData
+ OpenCascade.ShapeExtend.WireData: data WireData
+ OpenCascade.ShapeExtend.WireData: fromWireChainedAndManifold :: Ptr Wire -> Bool -> Bool -> Acquire (Ptr WireData)
+ OpenCascade.ShapeExtend.WireData: reverse :: Ptr WireData -> IO ()
+ OpenCascade.ShapeExtend.WireData: wire :: Ptr WireData -> Acquire (Ptr Wire)
+ OpenCascade.ShapeExtend.WireData: wireAPIMake :: Ptr WireData -> Acquire (Ptr Wire)

Files

CHANGELOG.md view
@@ -8,6 +8,16 @@  ## Unreleased +## 0.4.0.0++- Add `OpenCascade.BRepBuilderAPI.MakeVertex`+- Add `OpenCascade.BRepBuilderAPI.MakeWire.vertex`+- Add `OpenCascade.BRepOffsetAPI.ThruSections`+- Add `OpenCascade.BRep.Tool.pnt`+- Add `OpenCascade.Geom.Curve` methods `reversedParameter` and `reversed`+- Add `OpenCascade.ShapeExtend.WireData`+- Add `Show` instance to `OpenCascade.BRepBuilderAPI.WireError`+ ## 0.3.0.1  ## 0.3.0.0
+ cpp/hs_BRepBuilderAPI_MakeVertex.cpp view
@@ -0,0 +1,15 @@+#include <BRepBuilderAPI_MakeVertex.hxx>+#include "hs_BRepBuilderAPI_MakeVertex.h"+#include <TopoDS_Vertex.hxx>++BRepBuilderAPI_MakeVertex * hs_new_BRepBuilderAPI_MakeVertex_fromPnt(gp_Pnt* pnt){+    return new BRepBuilderAPI_MakeVertex(*pnt);+}++void hs_delete_BRepBuilderAPI_MakeVertex(BRepBuilderAPI_MakeVertex* builder){+    delete builder;+}++TopoDS_Vertex * hs_BRepBuilderAPI_MakeVertex_vertex(BRepBuilderAPI_MakeVertex * builder){+    return new TopoDS_Vertex(builder->Vertex());+}
+ cpp/hs_BRepBuilderAPI_MakeVertex.h view
@@ -0,0 +1,20 @@+#ifndef HS_BREPBUILDERAPI_MAKEVERTEX_H+#define HS_BREPBUILDERAPI_MAKEVERTEX_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++BRepBuilderAPI_MakeVertex * hs_new_BRepBuilderAPI_MakeVertex_fromPnt(gp_Pnt* pnt);++void hs_delete_BRepBuilderAPI_MakeVertex(BRepBuilderAPI_MakeVertex* builder);++TopoDS_Vertex * hs_BRepBuilderAPI_MakeVertex_vertex(BRepBuilderAPI_MakeVertex * builder);++#ifdef __cplusplus+}+#endif++#endif // HS_BREPBUILDERAPI_MAKEVERTEX_H
cpp/hs_BRepBuilderAPI_MakeWire.cpp view
@@ -26,6 +26,10 @@     return new TopoDS_Wire(builder->Wire()); } +TopoDS_Vertex * hs_BRepBuilderAPI_MakeWire_Vertex(BRepBuilderAPI_MakeWire* builder){+    return new TopoDS_Vertex(builder->Vertex());+}+ bool hs_BRepBuilderAPI_MakeWire_IsDone(BRepBuilderAPI_MakeWire* builder){     return builder->IsDone(); }
cpp/hs_BRepBuilderAPI_MakeWire.h view
@@ -19,6 +19,8 @@  TopoDS_Wire * hs_BRepBuilderAPI_MakeWire_Wire(BRepBuilderAPI_MakeWire* builder); +TopoDS_Vertex * hs_BRepBuilderAPI_MakeWire_Vertex(BRepBuilderAPI_MakeWire* builder);+ bool hs_BRepBuilderAPI_MakeWire_IsDone(BRepBuilderAPI_MakeWire* builder);  BRepBuilderAPI_WireError hs_BRepBuilderAPI_MakeWire_Error(BRepBuilderAPI_MakeWire* builder);
+ cpp/hs_BRepOffsetAPI_ThruSections.cpp view
@@ -0,0 +1,18 @@+#include <BRepOffsetAPI_ThruSections.hxx>+#include "hs_BRepOffsetAPI_ThruSections.h"++BRepOffsetAPI_ThruSections * hs_new_BRepOffsetAPI_ThruSections(bool isSolid, bool ruled, double pres3d){+    return new BRepOffsetAPI_ThruSections(isSolid, ruled, pres3d);+}++void hs_delete_BRepOffsetAPI_ThruSections(BRepOffsetAPI_ThruSections* thruSections){+    delete thruSections;+}++void hs_BRepOffsetAPI_ThruSections_addWire(BRepOffsetAPI_ThruSections* thruSections, TopoDS_Wire * wire){+    thruSections->AddWire(*wire);+}++void hs_BRepOffsetAPI_ThruSections_addVertex(BRepOffsetAPI_ThruSections* thruSections, TopoDS_Vertex* vertex){+    thruSections->AddVertex(*vertex);+}
+ cpp/hs_BRepOffsetAPI_ThruSections.h view
@@ -0,0 +1,23 @@++#ifndef HS_BREPOFFSETAPI_THRUSECTIONS_H+#define HS_BREPOFFSETAPI_THRUSECTIONS_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++BRepOffsetAPI_ThruSections * hs_new_BRepOffsetAPI_ThruSections(bool isSolid, bool ruled, double pres3d);++void hs_delete_BRepOffsetAPI_ThruSections(BRepOffsetAPI_ThruSections* thruSections);++void hs_BRepOffsetAPI_ThruSections_addWire(BRepOffsetAPI_ThruSections* thruSections, TopoDS_Wire * wire);++void hs_BRepOffsetAPI_ThruSections_addVertex(BRepOffsetAPI_ThruSections* thruSections, TopoDS_Vertex* vertex);++#ifdef __cplusplus+}+#endif++#endif // HS_BREPOFFSETAPI_THRUSECTIONS_H
cpp/hs_BRep_Tool.cpp view
@@ -17,6 +17,10 @@     double s, e;     BRep_Tool::Curve(*edge, s, e);     return e;+}++gp_Pnt * hs_BRep_Tool_pnt(TopoDS_Vertex * vertex){+    return new gp_Pnt(BRep_Tool::Pnt(*vertex)); }   Handle(Poly_Triangulation) * hs_BRep_Tool_triangulation(TopoDS_Face * face, TopLoc_Location * loc){
cpp/hs_BRep_Tool.h view
@@ -13,6 +13,8 @@  double hs_BRep_Tool_curveParamLast(TopoDS_Edge * edge); +gp_Pnt * hs_BRep_Tool_pnt(TopoDS_Vertex * vertex);+ Handle(Poly_Triangulation) * hs_BRep_Tool_triangulation(TopoDS_Face * face, TopLoc_Location * loc);  #ifdef __cplusplus
cpp/hs_Geom_Curve.cpp view
@@ -14,3 +14,11 @@ gp_Vec * hs_Geom_Curve_dn(Handle (Geom_Curve) * curve, double u, int n){     return new gp_Vec((*curve)->DN(u, n)); }++double hs_Geom_Curve_reversedParameter(Handle (Geom_Curve) * curve, double parameter){+    return (*curve)->ReversedParameter(parameter);+}++Handle (Geom_Curve) * hs_Geom_Curve_reversed(Handle (Geom_Curve) * curve){+    return new opencascade::handle<Geom_Curve>((*curve)->Reversed());+}
cpp/hs_Geom_Curve.h view
@@ -11,6 +11,11 @@ gp_Pnt * hs_Geom_Curve_value(Handle(Geom_Curve) * curve, double u);  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);++Handle (Geom_Curve) * hs_Geom_Curve_reversed(Handle (Geom_Curve) * curve);+ #ifdef __cplusplus } #endif
+ cpp/hs_ShapeExtend_WireData.cpp view
@@ -0,0 +1,25 @@+#include <ShapeExtend_WireData.hxx>+#include "hs_ShapeExtend_WireData.h"++#include <TopoDS_Wire.hxx>++ShapeExtend_WireData * hs_new_ShapeExtend_WireData_fromWireChainedAndManifold(TopoDS_Wire* wire, bool chained, bool manifoldMode){+    return new ShapeExtend_WireData(*wire, chained, manifoldMode);+}++void hs_delete_ShapeExtend_WireData(ShapeExtend_WireData * wireData){+    delete wireData;+}++void hs_ShapeExtend_WireData_reverse(ShapeExtend_WireData * wireData){+    wireData->Reverse();+}++TopoDS_Wire * hs_ShapeExtend_WireData_wire(ShapeExtend_WireData * wireData){+    return new TopoDS_Wire(wireData->Wire());+}+++TopoDS_Wire * hs_ShapeExtend_WireData_wireAPIMake(ShapeExtend_WireData * wireData){+    return new TopoDS_Wire(wireData->WireAPIMake());+}
+ cpp/hs_ShapeExtend_WireData.h view
@@ -0,0 +1,24 @@+#ifndef HS_SHAPEEXTEND_WIREDATA_H+#define HS_SHAPEEXTEND_WIREDATA_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++ShapeExtend_WireData * hs_new_ShapeExtend_WireData_fromWireChainedAndManifold(TopoDS_Wire* wire, bool chained, bool manifoldMode);++void hs_delete_ShapeExtend_WireData(ShapeExtend_WireData * wireData);++void hs_ShapeExtend_WireData_reverse(ShapeExtend_WireData * wireData);++TopoDS_Wire * hs_ShapeExtend_WireData_wire(ShapeExtend_WireData * wireData);++TopoDS_Wire * hs_ShapeExtend_WireData_wireAPIMake(ShapeExtend_WireData * wireData);++#ifdef __cplusplus+}+#endif++#endif // HS_SHAPEEXTEND_WIREDATA_H
cpp/hs_types.h view
@@ -32,6 +32,7 @@ typedef void gp_XYZ; typedef void BRep_Builder; typedef void BRepBuilderAPI_Transform;+typedef void BRepBuilderAPI_MakeVertex; typedef void BRepBuilderAPI_MakeWire; typedef void BRepBuilderAPI_MakeFace; typedef void BRepBuilderAPI_MakeSolid;@@ -82,6 +83,7 @@ typedef void TDocStd_Document; typedef void XCAFDoc_ShapeTool; typedef void ShapeFix_Solid;+typedef void ShapeExtend_WireData; typedef int ShapeExtend_Status; typedef void Poly_Triangulation; typedef void Poly_Triangle;
opencascade-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           opencascade-hs-version:        0.3.0.1+version:        0.4.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@@ -35,6 +35,7 @@     cpp/hs_BRepBuilderAPI_MakePolygon.h     cpp/hs_BRepBuilderAPI_MakeShape.h     cpp/hs_BRepBuilderAPI_MakeSolid.h+    cpp/hs_BRepBuilderAPI_MakeVertex.h     cpp/hs_BRepBuilderAPI_MakeWire.h     cpp/hs_BRepBuilderAPI_Sewing.h     cpp/hs_BRepBuilderAPI_Transform.h@@ -44,6 +45,7 @@     cpp/hs_BRepMesh_IncrementalMesh.h     cpp/hs_BRepOffsetAPI_MakeOffsetShape.h     cpp/hs_BRepOffsetAPI_MakePipe.h+    cpp/hs_BRepOffsetAPI_ThruSections.h     cpp/hs_BRepPrimAPI_MakeBox.h     cpp/hs_BRepPrimAPI_MakeCone.h     cpp/hs_BRepPrimAPI_MakeCylinder.h@@ -83,6 +85,7 @@     cpp/hs_RWMesh_CafReader.h     cpp/hs_RWObj_CafReader.h     cpp/hs_RWObj_CafWriter.h+    cpp/hs_ShapeExtend_WireData.h     cpp/hs_ShapeFix_Solid.h     cpp/hs_STEPControl_Reader.h     cpp/hs_STEPControl_Writer.h@@ -134,6 +137,7 @@       OpenCascade.BRepBuilderAPI.MakePolygon       OpenCascade.BRepBuilderAPI.MakeShape       OpenCascade.BRepBuilderAPI.MakeSolid+      OpenCascade.BRepBuilderAPI.MakeVertex       OpenCascade.BRepBuilderAPI.MakeWire       OpenCascade.BRepBuilderAPI.Sewing       OpenCascade.BRepBuilderAPI.Transform@@ -154,6 +158,7 @@       OpenCascade.BRepOffsetAPI.Internal.Destructors       OpenCascade.BRepOffsetAPI.MakeOffsetShape       OpenCascade.BRepOffsetAPI.MakePipe+      OpenCascade.BRepOffsetAPI.ThruSections       OpenCascade.BRepOffsetAPI.Types       OpenCascade.BRepPrimAPI       OpenCascade.BRepPrimAPI.Internal.Destructors@@ -228,7 +233,10 @@       OpenCascade.RWObj.CafWriter       OpenCascade.RWObj.Internal.Destructors       OpenCascade.RWObj.Types+      OpenCascade.ShapeExtend.Internal.Destructors       OpenCascade.ShapeExtend.Status+      OpenCascade.ShapeExtend.Types+      OpenCascade.ShapeExtend.WireData       OpenCascade.ShapeFix.Internal.Destructors       OpenCascade.ShapeFix.Solid       OpenCascade.ShapeFix.Types@@ -310,6 +318,7 @@       cpp/hs_BRepBuilderAPI_MakePolygon.cpp       cpp/hs_BRepBuilderAPI_MakeShape.cpp       cpp/hs_BRepBuilderAPI_MakeSolid.cpp+      cpp/hs_BRepBuilderAPI_MakeVertex.cpp       cpp/hs_BRepBuilderAPI_MakeWire.cpp       cpp/hs_BRepBuilderAPI_Sewing.cpp       cpp/hs_BRepBuilderAPI_Transform.cpp@@ -319,6 +328,7 @@       cpp/hs_BRepMesh_IncrementalMesh.cpp       cpp/hs_BRepOffsetAPI_MakeOffsetShape.cpp       cpp/hs_BRepOffsetAPI_MakePipe.cpp+      cpp/hs_BRepOffsetAPI_ThruSections.cpp       cpp/hs_BRepPrimAPI_MakeBox.cpp       cpp/hs_BRepPrimAPI_MakeCone.cpp       cpp/hs_BRepPrimAPI_MakeCylinder.cpp@@ -358,6 +368,7 @@       cpp/hs_RWMesh_CafReader.cpp       cpp/hs_RWObj_CafReader.cpp       cpp/hs_RWObj_CafWriter.cpp+      cpp/hs_ShapeExtend_WireData.cpp       cpp/hs_ShapeFix_Solid.cpp       cpp/hs_STEPControl_Reader.cpp       cpp/hs_STEPControl_Writer.cpp
src/OpenCascade/BRep/Tool.hs view
@@ -3,17 +3,20 @@ ( curve , curveParamFirst , curveParamLast+, pnt , triangulation ) where  import qualified OpenCascade.Geom as Geom import qualified OpenCascade.TopoDS as TopoDS+import qualified OpenCascade.GP as GP  import qualified OpenCascade.TopLoc.Types as TopLoc import qualified OpenCascade.Poly.Types as Poly import OpenCascade.Poly.Internal.Destructors (deleteHandleTriangulation) import OpenCascade.Handle (Handle) import OpenCascade.Geom.Internal.Destructors (deleteHandleCurve)+import OpenCascade.GP.Internal.Destructors (deletePnt) import Foreign.Ptr import Foreign.C import Data.Coerce@@ -33,6 +36,11 @@  curveParamLast :: Ptr TopoDS.Edge -> IO Double  curveParamLast = coerce rawCurveParamLast++foreign import capi unsafe "hs_BRep_Tool.h hs_BRep_Tool_pnt" rawPnt :: Ptr (TopoDS.Vertex) -> IO (Ptr GP.Pnt)++pnt :: Ptr TopoDS.Vertex -> Acquire (Ptr GP.Pnt)+pnt v = mkAcquire (rawPnt v) deletePnt  foreign import capi unsafe "hs_BRep_Tool.h hs_BRep_Tool_triangulation" rawTriangulation :: Ptr (TopoDS.Face) -> Ptr TopLoc.Location -> IO(Ptr (Handle Poly.Triangulation)) 
src/OpenCascade/BRepBuilderAPI/Internal/Destructors.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CApiFFI #-} module OpenCascade.BRepBuilderAPI.Internal.Destructors-( deleteMakeWire+( deleteMakeVertex+, deleteMakeWire , deleteMakeFace , deleteMakeSolid , deleteSewing@@ -10,6 +11,7 @@  import Foreign.Ptr +foreign import capi unsafe "hs_BRepBuilderAPI_MakeVertex.h hs_delete_BRepBuilderAPI_MakeVertex" deleteMakeVertex :: Ptr MakeVertex -> IO () foreign import capi unsafe "hs_BRepBuilderAPI_MakeWire.h hs_delete_BRepBuilderAPI_MakeWire" deleteMakeWire :: Ptr MakeWire -> IO () foreign import capi unsafe "hs_BRepBuilderAPI_MakeFace.h hs_delete_BRepBuilderAPI_MakeFace" deleteMakeFace :: Ptr MakeFace -> IO () foreign import capi unsafe "hs_BRepBuilderAPI_MakeSolid.h hs_delete_BRepBuilderAPI_MakeSolid" deleteMakeSolid :: Ptr MakeSolid -> IO ()
+ src/OpenCascade/BRepBuilderAPI/MakeVertex.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.BRepBuilderAPI.MakeVertex+( MakeVertex+, fromPnt+, vertex+) where++import OpenCascade.BRepBuilderAPI.Types (MakeVertex)+import OpenCascade.BRepBuilderAPI.Internal.Destructors (deleteMakeVertex)+import qualified OpenCascade.GP as GP+import qualified OpenCascade.TopoDS as TopoDS+import qualified OpenCascade.TopoDS.Internal.Destructors as TopoDS.Destructors+import Foreign.Ptr (Ptr)+import Data.Acquire (Acquire, mkAcquire)+import OpenCascade.Inheritance (upcast)++foreign import capi unsafe "hs_BRepBuilderAPI_MakeVertex.h hs_new_BRepBuilderAPI_MakeVertex_fromPnt" rawFromPnt :: Ptr GP.Pnt -> IO (Ptr MakeVertex)++fromPnt :: Ptr GP.Pnt -> Acquire (Ptr MakeVertex)+fromPnt pnt = mkAcquire (rawFromPnt pnt) (deleteMakeVertex)+++foreign import capi unsafe "hs_BRepBuilderAPI_MakeVertex.h hs_BRepBuilderAPI_MakeVertex_vertex" rawVertex :: Ptr MakeVertex -> IO (Ptr TopoDS.Vertex)++vertex :: Ptr MakeVertex -> Acquire (Ptr TopoDS.Vertex)+vertex builder = mkAcquire (rawVertex builder) (TopoDS.Destructors.deleteShape . upcast)
src/OpenCascade/BRepBuilderAPI/MakeWire.hs view
@@ -6,6 +6,7 @@ , addWire , addListOfShape , wire+, vertex , isDone , error ) where@@ -50,6 +51,13 @@  wire :: Ptr MakeWire -> Acquire (Ptr TopoDS.Wire) wire builder = mkAcquire (rawWire builder) (TopoDS.Destructors.deleteShape . upcast)++-- vertex+--+foreign import capi unsafe "hs_BRepBuilderAPI_MakeWire.h hs_BRepBuilderAPI_MakeWire_Vertex" rawVertex :: Ptr MakeWire -> IO (Ptr TopoDS.Vertex)++vertex :: Ptr MakeWire -> Acquire (Ptr TopoDS.Vertex)+vertex builder = mkAcquire (rawVertex builder) (TopoDS.Destructors.deleteShape . upcast)  -- isDone --
src/OpenCascade/BRepBuilderAPI/Types.hs view
@@ -1,7 +1,8 @@ {-# LANGUAGE MultiParamTypeClasses #-}  {-# LANGUAGE EmptyDataDecls #-} module OpenCascade.BRepBuilderAPI.Types -( MakeWire+( MakeVertex+, MakeWire , MakeFace , MakeSolid , MakeShape@@ -10,6 +11,7 @@  import qualified OpenCascade.Inheritance as Inheritance +data MakeVertex data MakeWire data MakeFace data MakeSolid@@ -18,6 +20,7 @@  data Sewing +instance Inheritance.SubTypeOf MakeShape MakeVertex instance Inheritance.SubTypeOf MakeShape MakeWire instance Inheritance.SubTypeOf MakeShape MakeSolid instance Inheritance.SubTypeOf MakeShape MakeFace
src/OpenCascade/BRepBuilderAPI/WireError.hs view
@@ -3,4 +3,4 @@ ) where  -- order must match the definition of BRepBuilderAPI_WireError-data WireError = WireDone | EmptyWire | DisconnectedWire | NonManifoldWire deriving (Eq, Enum)+data WireError = WireDone | EmptyWire | DisconnectedWire | NonManifoldWire deriving (Eq, Enum, Show)
src/OpenCascade/BRepOffsetAPI/Internal/Destructors.hs view
@@ -2,6 +2,7 @@ module OpenCascade.BRepOffsetAPI.Internal.Destructors ( deleteMakePipe , deleteMakeOffsetShape+, deleteThruSections ) where  import OpenCascade.BRepOffsetAPI.Types@@ -10,5 +11,4 @@  foreign import capi unsafe "hs_BRepOffsetAPI_MakePipe.h hs_delete_BRepOffsetAPI_MakePipe" deleteMakePipe :: Ptr MakePipe -> IO () foreign import capi unsafe "hs_BRepOffsetAPI_MakeOffsetShape.h hs_delete_BRepOffsetAPI_MakeOffsetShape" deleteMakeOffsetShape :: Ptr MakeOffsetShape -> IO ()--+foreign import capi unsafe "hs_BRepOffsetAPI_ThruSections.h hs_delete_BRepOffsetAPI_ThruSections" deleteThruSections :: Ptr ThruSections -> IO ()
+ src/OpenCascade/BRepOffsetAPI/ThruSections.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.BRepOffsetAPI.ThruSections+( ThruSections+, new+, addWire+, addVertex+) where+++import OpenCascade.BRepOffsetAPI.Types (ThruSections)+import OpenCascade.BRepOffsetAPI.Internal.Destructors (deleteThruSections)+import qualified OpenCascade.TopoDS as TopoDS+import Foreign.Ptr+import Foreign.C (CBool (..), CDouble (..))+import Data.Acquire+import OpenCascade.Internal.Bool (boolToCBool)+import Data.Coerce (coerce)+++foreign import capi unsafe "hs_BRepOffsetAPI_ThruSections.h hs_new_BRepOffsetAPI_ThruSections" rawNew :: CBool -> CBool -> CDouble -> IO (Ptr ThruSections)++new :: Bool -> Bool -> Double -> Acquire (Ptr ThruSections)+new makeSolid ruled precision = mkAcquire (rawNew (boolToCBool makeSolid) (boolToCBool ruled) (coerce precision)) deleteThruSections++foreign import capi unsafe "hs_BRepOffsetAPI_ThruSections.h hs_BRepOffsetAPI_ThruSections_addWire" addWire :: Ptr ThruSections -> Ptr TopoDS.Wire -> IO ()++foreign import capi unsafe "hs_BRepOffsetAPI_ThruSections.h hs_BRepOffsetAPI_ThruSections_addVertex" addVertex :: Ptr ThruSections -> Ptr TopoDS.Vertex -> IO ()
src/OpenCascade/BRepOffsetAPI/Types.hs view
@@ -3,6 +3,7 @@ module OpenCascade.BRepOffsetAPI.Types ( MakePipe , MakeOffsetShape+, ThruSections ) where  import qualified OpenCascade.Inheritance as Inheritance@@ -10,6 +11,8 @@  data MakePipe data MakeOffsetShape+data ThruSections  instance Inheritance.SubTypeOf MakeShape MakePipe instance Inheritance.SubTypeOf MakeShape MakeOffsetShape+instance Inheritance.SubTypeOf MakeShape ThruSections
src/OpenCascade/Geom/Curve.hs view
@@ -2,6 +2,8 @@ module OpenCascade.Geom.Curve  ( value , dn+, reversedParameter+, reversed ) where import Foreign.Ptr import Foreign.C@@ -10,7 +12,9 @@ import OpenCascade.Geom.Types (Curve) import OpenCascade.GP (Pnt, Vec) import OpenCascade.GP.Internal.Destructors (deletePnt, deleteVec)+import OpenCascade.Geom.Internal.Destructors (deleteHandleCurve) import OpenCascade.Handle (Handle)+ foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_value" rawValue :: Ptr (Handle Curve) -> CDouble -> IO(Ptr Pnt)  value :: Ptr (Handle Curve) -> Double -> Acquire (Ptr Pnt)@@ -20,3 +24,14 @@  dn :: Ptr (Handle Curve) -> Double -> Int -> Acquire (Ptr Vec) dn curve u n = mkAcquire (rawDN curve (coerce u) (fromIntegral n)) deleteVec++foreign import capi unsafe "hs_Geom_Curve.h hs_Geom_Curve_reversedParameter" rawReversedParameter :: Ptr (Handle Curve) -> CDouble -> IO CDouble++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))++reversed :: Ptr (Handle Curve) -> Acquire (Ptr (Handle Curve))+reversed c = mkAcquire (rawReversed c) deleteHandleCurve
+ src/OpenCascade/ShapeExtend/Internal/Destructors.hs view
@@ -0,0 +1,10 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.ShapeExtend.Internal.Destructors+( deleteWireData+) where++import OpenCascade.ShapeExtend.Types (WireData)++import Foreign.Ptr++foreign import capi unsafe "hs_ShapeExtend_WireData.h hs_delete_ShapeExtend_WireData" deleteWireData :: Ptr WireData -> IO ()
+ src/OpenCascade/ShapeExtend/Types.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE EmptyDataDecls #-}+module OpenCascade.ShapeExtend.Types +( WireData+) where++data WireData
+ src/OpenCascade/ShapeExtend/WireData.hs view
@@ -0,0 +1,39 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.ShapeExtend.WireData+( WireData+, fromWireChainedAndManifold+, reverse+, wire+, wireAPIMake+) where++import Prelude hiding (reverse)+import OpenCascade.ShapeExtend.Types (WireData)+import OpenCascade.ShapeExtend.Internal.Destructors (deleteWireData)+import qualified OpenCascade.TopoDS as TopoDS+import OpenCascade.TopoDS.Internal.Destructors (deleteShape)+import OpenCascade.Internal.Bool (boolToCBool)+import OpenCascade.Inheritance (upcast)+import Foreign.Ptr (Ptr)+import Foreign.C (CBool (..))+import Data.Acquire (Acquire, mkAcquire)++foreign import capi unsafe "hs_ShapeExtend_WireData.h hs_new_ShapeExtend_WireData_fromWireChainedAndManifold" rawFromWireChainedAndManifold :: Ptr TopoDS.Wire -> CBool -> CBool -> IO (Ptr WireData)++fromWireChainedAndManifold :: Ptr TopoDS.Wire -> Bool -> Bool -> Acquire (Ptr WireData)+fromWireChainedAndManifold theWire chained manifold = +    mkAcquire (rawFromWireChainedAndManifold theWire (boolToCBool chained) (boolToCBool manifold)) (deleteWireData)++foreign import capi unsafe "hs_ShapeExtend_WireData.h hs_ShapeExtend_WireData_reverse" reverse :: Ptr WireData -> IO ()+++foreign import capi unsafe "hs_ShapeExtend_WireData.h hs_ShapeExtend_WireData_wire" rawWire :: Ptr WireData -> IO (Ptr TopoDS.Wire)++wire :: Ptr WireData -> Acquire (Ptr TopoDS.Wire)+wire wireData = mkAcquire (rawWire wireData) (deleteShape . upcast)+++foreign import capi unsafe "hs_ShapeExtend_WireData.h hs_ShapeExtend_WireData_wireAPIMake" rawWireAPIMake :: Ptr WireData -> IO (Ptr TopoDS.Wire)++wireAPIMake :: Ptr WireData -> Acquire (Ptr TopoDS.Wire)+wireAPIMake wireData = mkAcquire (rawWireAPIMake wireData) (deleteShape . upcast)