opencascade-hs 0.2.2.1 → 0.3.0.0
raw patch · 8 files changed
+72/−17 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- OpenCascade.BRepBuilderAPI.FaceError: instance GHC.Internal.Enum.Enum OpenCascade.BRepBuilderAPI.FaceError.FaceError
- OpenCascade.BRepBuilderAPI.WireError: instance GHC.Internal.Enum.Enum OpenCascade.BRepBuilderAPI.WireError.WireError
- OpenCascade.BRepOffset.Mode: instance GHC.Internal.Enum.Enum OpenCascade.BRepOffset.Mode.Mode
- OpenCascade.BRepOffset.Mode: instance GHC.Internal.Show.Show OpenCascade.BRepOffset.Mode.Mode
- OpenCascade.Font.FontAspect: instance GHC.Internal.Enum.Enum OpenCascade.Font.FontAspect.FontAspect
- OpenCascade.Font.FontAspect: instance GHC.Internal.Show.Show OpenCascade.Font.FontAspect.FontAspect
- OpenCascade.GeomAbs.JoinType: instance GHC.Internal.Enum.Enum OpenCascade.GeomAbs.JoinType.JoinType
- OpenCascade.GeomAbs.JoinType: instance GHC.Internal.Show.Show OpenCascade.GeomAbs.JoinType.JoinType
- OpenCascade.Graphic3D.HorizontalTextAlignment: instance GHC.Internal.Enum.Enum OpenCascade.Graphic3D.HorizontalTextAlignment.HorizontalTextAlignment
- OpenCascade.Graphic3D.HorizontalTextAlignment: instance GHC.Internal.Show.Show OpenCascade.Graphic3D.HorizontalTextAlignment.HorizontalTextAlignment
- OpenCascade.Graphic3D.VerticalTextAlignment: instance GHC.Internal.Enum.Enum OpenCascade.Graphic3D.VerticalTextAlignment.VerticalTextAlignment
- OpenCascade.Graphic3D.VerticalTextAlignment: instance GHC.Internal.Show.Show OpenCascade.Graphic3D.VerticalTextAlignment.VerticalTextAlignment
- OpenCascade.IFSelect.ReturnStatus: instance GHC.Internal.Enum.Enum OpenCascade.IFSelect.ReturnStatus.ReturnStatus
- OpenCascade.IFSelect.ReturnStatus: instance GHC.Internal.Show.Show OpenCascade.IFSelect.ReturnStatus.ReturnStatus
- OpenCascade.STEPControl.StepModelType: instance GHC.Internal.Enum.Enum OpenCascade.STEPControl.StepModelType.StepModelType
- OpenCascade.ShapeExtend.Status: instance GHC.Internal.Enum.Enum OpenCascade.ShapeExtend.Status.Status
- OpenCascade.ShapeExtend.Status: instance GHC.Internal.Show.Show OpenCascade.ShapeExtend.Status.Status
- OpenCascade.TopAbs.Orientation: instance GHC.Internal.Enum.Enum OpenCascade.TopAbs.Orientation.Orientation
- OpenCascade.TopAbs.Orientation: instance GHC.Internal.Show.Show OpenCascade.TopAbs.Orientation.Orientation
- OpenCascade.TopAbs.ShapeEnum: instance GHC.Internal.Enum.Enum OpenCascade.TopAbs.ShapeEnum.ShapeEnum
- OpenCascade.TopAbs.ShapeEnum: instance GHC.Internal.Show.Show OpenCascade.TopAbs.ShapeEnum.ShapeEnum
- OpenCascade.TopoDS.Shape: hashCode :: Ptr Shape -> Int -> IO Int
+ OpenCascade.BRepBuilderAPI.FaceError: instance GHC.Enum.Enum OpenCascade.BRepBuilderAPI.FaceError.FaceError
+ OpenCascade.BRepBuilderAPI.WireError: instance GHC.Enum.Enum OpenCascade.BRepBuilderAPI.WireError.WireError
+ OpenCascade.BRepOffset.Mode: instance GHC.Enum.Enum OpenCascade.BRepOffset.Mode.Mode
+ OpenCascade.BRepOffset.Mode: instance GHC.Show.Show OpenCascade.BRepOffset.Mode.Mode
+ OpenCascade.Font.FontAspect: instance GHC.Enum.Enum OpenCascade.Font.FontAspect.FontAspect
+ OpenCascade.Font.FontAspect: instance GHC.Show.Show OpenCascade.Font.FontAspect.FontAspect
+ OpenCascade.GeomAbs.JoinType: instance GHC.Enum.Enum OpenCascade.GeomAbs.JoinType.JoinType
+ OpenCascade.GeomAbs.JoinType: instance GHC.Show.Show OpenCascade.GeomAbs.JoinType.JoinType
+ OpenCascade.Graphic3D.HorizontalTextAlignment: instance GHC.Enum.Enum OpenCascade.Graphic3D.HorizontalTextAlignment.HorizontalTextAlignment
+ OpenCascade.Graphic3D.HorizontalTextAlignment: instance GHC.Show.Show OpenCascade.Graphic3D.HorizontalTextAlignment.HorizontalTextAlignment
+ OpenCascade.Graphic3D.VerticalTextAlignment: instance GHC.Enum.Enum OpenCascade.Graphic3D.VerticalTextAlignment.VerticalTextAlignment
+ OpenCascade.Graphic3D.VerticalTextAlignment: instance GHC.Show.Show OpenCascade.Graphic3D.VerticalTextAlignment.VerticalTextAlignment
+ OpenCascade.IFSelect.ReturnStatus: instance GHC.Enum.Enum OpenCascade.IFSelect.ReturnStatus.ReturnStatus
+ OpenCascade.IFSelect.ReturnStatus: instance GHC.Show.Show OpenCascade.IFSelect.ReturnStatus.ReturnStatus
+ OpenCascade.STEPControl.StepModelType: instance GHC.Enum.Enum OpenCascade.STEPControl.StepModelType.StepModelType
+ OpenCascade.ShapeExtend.Status: instance GHC.Enum.Enum OpenCascade.ShapeExtend.Status.Status
+ OpenCascade.ShapeExtend.Status: instance GHC.Show.Show OpenCascade.ShapeExtend.Status.Status
+ OpenCascade.TopAbs.Orientation: instance GHC.Enum.Enum OpenCascade.TopAbs.Orientation.Orientation
+ OpenCascade.TopAbs.Orientation: instance GHC.Show.Show OpenCascade.TopAbs.Orientation.Orientation
+ OpenCascade.TopAbs.ShapeEnum: instance GHC.Enum.Enum OpenCascade.TopAbs.ShapeEnum.ShapeEnum
+ OpenCascade.TopAbs.ShapeEnum: instance GHC.Show.Show OpenCascade.TopAbs.ShapeEnum.ShapeEnum
+ OpenCascade.TopTools.ShapeMapHasher: hash :: Ptr Shape -> IO Int
+ OpenCascade.TopTools.ShapeMapHasher: isEqual :: Ptr Shape -> Ptr Shape -> IO Bool
Files
- CHANGELOG.md +14/−0
- cpp/hs_TopTools_ShapeMapHasher.cpp +12/−0
- cpp/hs_TopTools_ShapeMapHasher.h +18/−0
- cpp/hs_TopoDS_Shape.cpp +0/−4
- cpp/hs_TopoDS_Shape.h +0/−2
- opencascade-hs.cabal +8/−4
- src/OpenCascade/TopTools/ShapeMapHasher.hs +20/−0
- src/OpenCascade/TopoDS/Shape.hs +0/−7
CHANGELOG.md view
@@ -8,6 +8,20 @@ ## Unreleased +## 0.3.0.0++### Changed++- The project now depends on (and supports) OpenCascade `7.8.0` or later++### Added ++- added `OpenCascade.TopTools.ShapeMapHasher` (this replaces `hashCode` in `OpenCascade.TopoDS.Shape`)++### Removed++- removed `OpenCascade.TopoDS.Shape.hashCode` + ## 0.2.2.1 ## 0.2.2.0
+ cpp/hs_TopTools_ShapeMapHasher.cpp view
@@ -0,0 +1,12 @@+#include <TopTools_ShapeMapHasher.hxx>+#include "hs_TopTools_ShapeMapHasher.h"++int hs_TopTools_ShapeMapHasher_hash(TopoDS_Shape * shape){+ auto hasher = TopTools_ShapeMapHasher();+ return hasher(*shape);+}++bool hs_TopTools_ShapeMapHasher_isEqual(TopoDS_Shape * shapeA, TopoDS_Shape * shapeB){+ auto hasher = TopTools_ShapeMapHasher();+ return hasher(*shapeA, *shapeB);+}
+ cpp/hs_TopTools_ShapeMapHasher.h view
@@ -0,0 +1,18 @@+#ifndef HS_TOPTOOLS_SHAPEMAPHASHER_H+#define HS_TOPTOOLS_SHAPEMAPHASHER_H++#include "hs_types.h"++#ifdef __cplusplus+extern "C" {+#endif++int hs_TopTools_ShapeMapHasher_hash(TopoDS_Shape * shape);++bool hs_TopTools_ShapeMapHasher_isEqual(TopoDS_Shape * shapeA, TopoDS_Shape * shapeB);++#ifdef __cplusplus+}+#endif++#endif // HS_TOPTOOLS_SHAPEMAPHASHER_H
cpp/hs_TopoDS_Shape.cpp view
@@ -179,7 +179,3 @@ TopoDS_Shape * hs_TopoDS_Shape_EmptyCopied(TopoDS_Shape * shape){ return new TopoDS_Shape(shape->EmptyCopied()); }--int hs_TopoDS_Shape_hashCode(TopoDS_Shape * shape, int maxN){- return shape->HashCode(maxN);-}
cpp/hs_TopoDS_Shape.h view
@@ -95,8 +95,6 @@ void hs_TopoDS_Shape_EmptyCopy(TopoDS_Shape * shape); -int hs_TopoDS_Shape_hashCode(TopoDS_Shape * shape, int maxN);- TopoDS_Shape * hs_TopoDS_Shape_EmptyCopied(TopoDS_Shape * shape); #ifdef __cplusplus
opencascade-hs.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: opencascade-hs-version: 0.2.2.1+version: 0.3.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@@ -103,6 +103,7 @@ cpp/hs_TopoDS_Solid.h cpp/hs_TopoDS_Vertex.h cpp/hs_TopoDS_Wire.h+ cpp/hs_TopTools_ShapeMapHasher.h cpp/hs_types.h cpp/hs_XCAFDoc_DocumentTool.h cpp/hs_XCAFDoc_ShapeTool.h@@ -275,6 +276,7 @@ OpenCascade.TopoDS.Vertex OpenCascade.TopoDS.Wire OpenCascade.TopTools+ OpenCascade.TopTools.ShapeMapHasher OpenCascade.TopTools.Types OpenCascade.XCAFDoc.DocumentTool OpenCascade.XCAFDoc.Internal.Destructors@@ -376,6 +378,7 @@ cpp/hs_TopoDS_Solid.cpp cpp/hs_TopoDS_Vertex.cpp cpp/hs_TopoDS_Wire.cpp+ cpp/hs_TopTools_ShapeMapHasher.cpp cpp/hs_XCAFDoc_DocumentTool.cpp cpp/hs_XCAFDoc_ShapeTool.cpp cpp/hs_XSControl_Reader.cpp@@ -388,14 +391,15 @@ TKMath TKernel TKBRep- TKGeomBase TKOffset TKFillet TKBO TKPrim TKTopAlgo- TKSTL- TKSTEP+ TKDESTL+ TKDESTEP+ TKDEGLTF+ TKDEOBJ TKV3d TKMesh TKRWMesh
+ src/OpenCascade/TopTools/ShapeMapHasher.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE CApiFFI #-}+module OpenCascade.TopTools.ShapeMapHasher +( hash+, isEqual+) where++import qualified OpenCascade.TopoDS.Types as TopoDS+import Foreign.Ptr (Ptr)+import Foreign.C (CInt (..), CBool (..))+import OpenCascade.Internal.Bool (cBoolToBool)++foreign import capi unsafe "hs_TopTools_ShapeMapHasher.h hs_TopTools_ShapeMapHasher_hash" rawHash :: Ptr TopoDS.Shape -> IO (CInt)++hash :: Ptr TopoDS.Shape -> IO Int+hash s = fromIntegral <$> rawHash s++foreign import capi unsafe "hs_TopTools_ShapeMapHasher.h hs_TopTools_ShapeMapHasher_isEqual" rawIsEqual :: Ptr TopoDS.Shape -> Ptr TopoDS.Shape -> IO (CBool)++isEqual :: Ptr TopoDS.Shape -> Ptr TopoDS.Shape -> IO Bool+isEqual a b = cBoolToBool <$> rawIsEqual a b
src/OpenCascade/TopoDS/Shape.hs view
@@ -41,7 +41,6 @@ , isNotEqual , emptyCopy , emptyCopied-, hashCode ) where import Prelude hiding (reverse)@@ -333,9 +332,3 @@ emptyCopied :: Ptr Shape -> Acquire (Ptr Shape) emptyCopied s = mkAcquire (rawEmptyCopied s) deleteShape---foreign import capi unsafe "hs_TopoDS_Shape.h hs_TopoDS_Shape_hashCode" rawHashCode :: Ptr Shape -> CInt -> IO CInt--hashCode :: Ptr Shape -> Int -> IO Int-hashCode shape upperBound = fromIntegral <$> rawHashCode shape (fromIntegral upperBound)