opencascade-hs 0.1.0.0 → 0.1.1.0
raw patch · 10 files changed
+106/−3 lines, 10 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ OpenCascade.BRepOffset.Mode: Pipe :: Mode
+ OpenCascade.BRepOffset.Mode: RectoVerso :: Mode
+ OpenCascade.BRepOffset.Mode: Skin :: Mode
+ OpenCascade.BRepOffset.Mode: data Mode
+ OpenCascade.BRepOffset.Mode: instance GHC.Enum.Enum OpenCascade.BRepOffset.Mode.Mode
+ OpenCascade.BRepOffset.Mode: instance GHC.Show.Show OpenCascade.BRepOffset.Mode.Mode
+ OpenCascade.BRepOffsetAPI.Internal.Destructors: deleteMakeOffsetShape :: Ptr MakeOffsetShape -> IO ()
+ OpenCascade.BRepOffsetAPI.MakeOffsetShape: data MakeOffsetShape
+ OpenCascade.BRepOffsetAPI.MakeOffsetShape: new :: Acquire (Ptr MakeOffsetShape)
+ OpenCascade.BRepOffsetAPI.MakeOffsetShape: performByJoin :: Ptr MakeOffsetShape -> Ptr Shape -> Double -> Double -> Mode -> Bool -> Bool -> JoinType -> Bool -> IO ()
+ OpenCascade.BRepOffsetAPI.MakeOffsetShape: performBySimple :: Ptr MakeOffsetShape -> Ptr Shape -> Double -> IO ()
+ OpenCascade.BRepOffsetAPI.Types: data MakeOffsetShape
+ OpenCascade.BRepOffsetAPI.Types: instance OpenCascade.Inheritance.SubTypeOf OpenCascade.BRepBuilderAPI.Types.MakeShape OpenCascade.BRepOffsetAPI.Types.MakeOffsetShape
+ OpenCascade.Geom.Curve: dn :: Ptr (Handle Curve) -> Double -> Int -> Acquire (Ptr Vec)
+ OpenCascade.GeomAbs.JoinType: Arc :: JoinType
+ OpenCascade.GeomAbs.JoinType: Intersection :: JoinType
+ OpenCascade.GeomAbs.JoinType: Tangent :: JoinType
+ OpenCascade.GeomAbs.JoinType: data JoinType
+ OpenCascade.GeomAbs.JoinType: instance GHC.Enum.Enum OpenCascade.GeomAbs.JoinType.JoinType
+ OpenCascade.GeomAbs.JoinType: instance GHC.Show.Show OpenCascade.GeomAbs.JoinType.JoinType
Files
- CHANGELOG.md +9/−0
- cpp/hs_BRepOffsetAPI_MakeOffsetShape.cpp +28/−0
- cpp/hs_Geom_Curve.cpp +4/−0
- opencascade-hs.cabal +5/−1
- src/OpenCascade/BRepOffset/Mode.hs +5/−0
- src/OpenCascade/BRepOffsetAPI/Internal/Destructors.hs +1/−0
- src/OpenCascade/BRepOffsetAPI/MakeOffsetShape.hs +37/−0
- src/OpenCascade/BRepOffsetAPI/Types.hs +3/−0
- src/OpenCascade/Geom/Curve.hs +8/−2
- src/OpenCascade/GeomAbs/JoinType.hs +6/−0
CHANGELOG.md view
@@ -8,6 +8,15 @@ ## Unreleased +## 0.1.1.0 - 2023-12-12 ++### Added++- Add OpenCascade.BRepOffsetAPI.MakeOffsetShape+- Add OpenCascade.GeomAbs.JoinType+- Add OpenCascade.BRepOffset.Mode+- Add `dn` to OpenCascade.Geom.Curve+ ## 0.1.0.0 - 2023-12-05 ### Added
+ cpp/hs_BRepOffsetAPI_MakeOffsetShape.cpp view
@@ -0,0 +1,28 @@+#include <BRepOffsetAPI_MakeOffsetShape.hxx>+#include "hs_BRepOffsetAPI_MakeOffsetShape.h"++BRepOffsetAPI_MakeOffsetShape * hs_new_BRepOffsetAPI_MakeOffsetShape(){+ return new BRepOffsetAPI_MakeOffsetShape();+}++void hs_delete_BRepOffsetAPI_MakeOffsetShape(BRepOffsetAPI_MakeOffsetShape * builder){+ delete builder;+}++void hs_BRepOffsetAPI_MakeOffsetShape_performBySimple(BRepOffsetAPI_MakeOffsetShape * builder, TopoDS_Shape * shape, double value){+ builder->PerformBySimple(*shape, value);+}++void hs_BRepOffsetAPI_MakeOffsetShape_performByJoin(+ BRepOffsetAPI_MakeOffsetShape * builder,+ TopoDS_Shape * shape, + double value,+ double tol,+ BRepOffset_Mode mode,+ bool intersection,+ bool selfInter,+ GeomAbs_JoinType join,+ bool removeIntEdges+ ){+ builder->PerformByJoin(*shape, value, tol, mode, intersection, selfInter, join, removeIntEdges);+}
cpp/hs_Geom_Curve.cpp view
@@ -1,5 +1,6 @@ #include <Geom_Curve.hxx> #include <gp_Pnt.hxx>+#include <gp_Vec.hxx> #include "hs_Geom_Curve.h" void hs_delete_Handle_Geom_Curve(Handle(Geom_Curve) * handle){@@ -10,3 +11,6 @@ return new gp_Pnt((*curve)->Value(u)); } +gp_Vec * hs_Geom_Curve_dn(Handle (Geom_Curve) * curve, double u, int n){+ return new gp_Vec((*curve)->DN(u, n));+}
opencascade-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: opencascade-hs-version: 0.1.0.0+version: 0.1.1.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@@ -52,8 +52,10 @@ OpenCascade.BRepMesh.IncrementalMesh OpenCascade.BRepMesh.Internal.Destructors OpenCascade.BRepMesh.Types+ OpenCascade.BRepOffset.Mode OpenCascade.BRepOffsetAPI OpenCascade.BRepOffsetAPI.Internal.Destructors+ OpenCascade.BRepOffsetAPI.MakeOffsetShape OpenCascade.BRepOffsetAPI.MakePipe OpenCascade.BRepOffsetAPI.Types OpenCascade.BRepPrimAPI@@ -80,6 +82,7 @@ OpenCascade.Geom.Curve OpenCascade.Geom.Internal.Destructors OpenCascade.Geom.Types+ OpenCascade.GeomAbs.JoinType OpenCascade.GP OpenCascade.GP.Ax1 OpenCascade.GP.Ax2@@ -166,6 +169,7 @@ cpp/hs_BRepBuilderAPI_Transform.cpp cpp/hs_BRepFilletAPI_MakeFillet.cpp cpp/hs_BRepMesh_IncrementalMesh.cpp+ cpp/hs_BRepOffsetAPI_MakeOffsetShape.cpp cpp/hs_BRepOffsetAPI_MakePipe.cpp cpp/hs_BRepPrimAPI_MakeBox.cpp cpp/hs_BRepPrimAPI_MakeCylinder.cpp
+ src/OpenCascade/BRepOffset/Mode.hs view
@@ -0,0 +1,5 @@+module OpenCascade.BRepOffset.Mode+(Mode (..)+) where++data Mode = Skin | Pipe | RectoVerso deriving (Enum, Show)
src/OpenCascade/BRepOffsetAPI/Internal/Destructors.hs view
@@ -6,5 +6,6 @@ import Foreign.Ptr 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 ()
+ src/OpenCascade/BRepOffsetAPI/MakeOffsetShape.hs view
@@ -0,0 +1,37 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.BRepOffsetAPI.MakeOffsetShape +( MakeOffsetShape +, new+, performBySimple+, performByJoin+) where++import OpenCascade.BRepOffsetAPI.Types (MakeOffsetShape)+import Data.Acquire+import OpenCascade.BRepOffsetAPI.Internal.Destructors (deleteMakeOffsetShape)+import Foreign (Ptr)+import qualified OpenCascade.TopoDS as TopoDS+import Foreign.C+import Data.Coerce (coerce)+import qualified OpenCascade.BRepOffset.Mode as BRepOffset.Mode+import qualified OpenCascade.GeomAbs.JoinType as GeomAbs.JoinType+import OpenCascade.Internal.Bool (boolToCBool)++foreign import capi unsafe "hs_BRepOffsetAPI_MakeOffsetShape.h hs_new_BRepOffsetAPI_MakeOffsetShape" rawNew :: IO (Ptr MakeOffsetShape)++new :: Acquire (Ptr MakeOffsetShape)+new = mkAcquire rawNew deleteMakeOffsetShape++foreign import capi unsafe "hs_BRepOffsetAPI_MakeOffsetShape.h hs_BRepOffsetAPI_MakeOffsetShape_performBySimple" rawPerformBySimple :: Ptr MakeOffsetShape -> Ptr TopoDS.Shape -> CDouble -> IO ()+ +performBySimple :: Ptr MakeOffsetShape -> Ptr TopoDS.Shape -> Double -> IO ()+performBySimple = coerce rawPerformBySimple+++foreign import capi unsafe "hs_BRepOffsetAPI_MakeOffsetShape.h hs_BRepOffsetAPI_MakeOffsetShape_performByJoin" rawPerformByJoin :: Ptr MakeOffsetShape -> Ptr TopoDS.Shape -> CDouble -> CDouble -> CInt -> CBool -> CBool -> CInt -> CBool -> IO ()++-- | builder, shape, value, tol, mode intersection, selfInter, join, removeIntEdges+performByJoin :: Ptr MakeOffsetShape -> Ptr TopoDS.Shape -> Double -> Double -> BRepOffset.Mode.Mode -> Bool -> Bool -> GeomAbs.JoinType.JoinType -> Bool -> IO ()+performByJoin builder shape value tol mode intersection selfInter join removeIntEdges =+ rawPerformByJoin builder shape (coerce value) (coerce tol) (fromIntegral $ fromEnum mode) (boolToCBool intersection) (boolToCBool selfInter) (fromIntegral . fromEnum $ join) (boolToCBool removeIntEdges)+
src/OpenCascade/BRepOffsetAPI/Types.hs view
@@ -2,11 +2,14 @@ {-# LANGUAGE EmptyDataDecls #-} module OpenCascade.BRepOffsetAPI.Types ( MakePipe+, MakeOffsetShape ) where import qualified OpenCascade.Inheritance as Inheritance import OpenCascade.BRepBuilderAPI.MakeShape (MakeShape) data MakePipe+data MakeOffsetShape instance Inheritance.SubTypeOf MakeShape MakePipe+instance Inheritance.SubTypeOf MakeShape MakeOffsetShape
src/OpenCascade/Geom/Curve.hs view
@@ -1,16 +1,22 @@ {-# LANGUAGE CApiFFI #-} module OpenCascade.Geom.Curve ( value+, dn ) where import Foreign.Ptr import Foreign.C import Data.Coerce import Data.Acquire import OpenCascade.Geom.Types (Curve)-import OpenCascade.GP (Pnt)-import OpenCascade.GP.Internal.Destructors (deletePnt)+import OpenCascade.GP (Pnt, Vec)+import OpenCascade.GP.Internal.Destructors (deletePnt, deleteVec) 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) value curve u = mkAcquire (rawValue curve (coerce u)) deletePnt++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)+dn curve u n = mkAcquire (rawDN curve (coerce u) (fromIntegral n)) deleteVec
+ src/OpenCascade/GeomAbs/JoinType.hs view
@@ -0,0 +1,6 @@+module OpenCascade.GeomAbs.JoinType+( JoinType (..)+) where++-- This needs to stay up to date with GeomAbs_JoinType.hxx+data JoinType = Arc | Tangent | Intersection deriving (Enum, Show)