From 5b06efaf28c4fc779da1cd056d15f8b041b864e3 Mon Sep 17 00:00:00 2001 From: Frank Staals Date: Sun, 26 May 2024 13:53:20 +0200 Subject: [PATCH] renaming the lower envelope modules --- hgeometry/hgeometry.cabal | 22 ++++++------- .../HGeometry/{ => Plane}/LowerEnvelope.hs | 14 ++++---- .../{ => Plane}/LowerEnvelope/AdjListForm.hs | 10 +++--- .../{ => Plane}/LowerEnvelope/AtMostThree.hs | 0 .../LowerEnvelope/BatchedPointLoc.hs | 0 .../LowerEnvelope/ConflictLists.hs | 0 .../{ => Plane}/LowerEnvelope/Connected.hs | 8 ++--- .../LowerEnvelope/Connected/FromVertexForm.hs | 10 +++--- .../LowerEnvelope/Connected/Type.hs | 10 +++--- .../LowerEnvelope/DivideAndConquer.hs | 0 .../Plane/LowerEnvelope/EpsApproximation.hs | 32 +++++++++++++++++++ .../{ => Plane}/LowerEnvelope/Naive.hs | 6 ++-- .../{ => Plane}/LowerEnvelope/Sample.hs | 0 .../{ => Plane}/LowerEnvelope/Triangulate.hs | 0 .../{ => Plane}/LowerEnvelope/Type.hs | 2 +- .../{ => Plane}/LowerEnvelope/VertexForm.hs | 6 ++-- .../VoronoiDiagram/ViaLowerEnvelope.hs | 6 ++-- .../test/VoronoiDiagram/VoronoiSpec.hs | 4 +-- hgeometry/test/LowerEnvelope/NaiveSpec.hs | 4 +-- 19 files changed, 83 insertions(+), 51 deletions(-) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope.hs (57%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/AdjListForm.hs (95%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/AtMostThree.hs (100%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/BatchedPointLoc.hs (100%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/ConflictLists.hs (100%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Connected.hs (79%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Connected/FromVertexForm.hs (98%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Connected/Type.hs (98%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/DivideAndConquer.hs (100%) create mode 100644 hgeometry/src/HGeometry/Plane/LowerEnvelope/EpsApproximation.hs rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Naive.hs (95%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Sample.hs (100%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Triangulate.hs (100%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/Type.hs (99%) rename hgeometry/src/HGeometry/{ => Plane}/LowerEnvelope/VertexForm.hs (97%) diff --git a/hgeometry/hgeometry.cabal b/hgeometry/hgeometry.cabal index 387f3c65a..b65889da1 100644 --- a/hgeometry/hgeometry.cabal +++ b/hgeometry/hgeometry.cabal @@ -392,11 +392,11 @@ library HGeometry.LineSegment.Intersection.Naive HGeometry.LineSegment.Intersection.BentleyOttmann - HGeometry.LowerEnvelope - HGeometry.LowerEnvelope.Naive - HGeometry.LowerEnvelope.VertexForm - HGeometry.LowerEnvelope.AdjListForm - HGeometry.LowerEnvelope.Connected + HGeometry.Plane.LowerEnvelope + HGeometry.Plane.LowerEnvelope.Naive + HGeometry.Plane.LowerEnvelope.VertexForm + HGeometry.Plane.LowerEnvelope.AdjListForm + HGeometry.Plane.LowerEnvelope.Connected HGeometry.VoronoiDiagram @@ -427,14 +427,14 @@ library HGeometry.LineSegment.Intersection.Types - HGeometry.LowerEnvelope.Type - HGeometry.LowerEnvelope.Connected.Type - HGeometry.LowerEnvelope.Connected.FromVertexForm - -- HGeometry.LowerEnvelope.Sample + HGeometry.Plane.LowerEnvelope.Type + HGeometry.Plane.LowerEnvelope.Connected.Type + HGeometry.Plane.LowerEnvelope.Connected.FromVertexForm + -- HGeometry.Plane.LowerEnvelope.Sample - -- HGeometry.LowerEnvelope.AtMostThree - -- HGeometry.LowerEnvelope.Triangulate + -- HGeometry.Plane.LowerEnvelope.AtMostThree + -- HGeometry.Plane.LowerEnvelope.Triangulate HGeometry.VoronoiDiagram.ViaLowerEnvelope diff --git a/hgeometry/src/HGeometry/LowerEnvelope.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope.hs similarity index 57% rename from hgeometry/src/HGeometry/LowerEnvelope.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope.hs index 6907f8f75..a155c14ef 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope.hs @@ -1,6 +1,6 @@ -------------------------------------------------------------------------------- -- | --- Module : HGeometry.LowerEnvelope +-- Module : HGeometry.Plane.LowerEnvelope -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals @@ -8,14 +8,14 @@ -- Computing the lower envelope of a set of planes -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope - ( module HGeometry.LowerEnvelope.Naive - , module HGeometry.LowerEnvelope.Type - -- , module HGeometry.LowerEnvelope.Naive +module HGeometry.Plane.LowerEnvelope + ( module HGeometry.Plane.LowerEnvelope.Naive + , module HGeometry.Plane.LowerEnvelope.Type + -- , module HGeometry.Plane.LowerEnvelope.Naive ) where -import HGeometry.LowerEnvelope.Naive -import HGeometry.LowerEnvelope.Type +import HGeometry.Plane.LowerEnvelope.Naive +import HGeometry.Plane.LowerEnvelope.Type -------------------------------------------------------------------------------- diff --git a/hgeometry/src/HGeometry/LowerEnvelope/AdjListForm.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/AdjListForm.hs similarity index 95% rename from hgeometry/src/HGeometry/LowerEnvelope/AdjListForm.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/AdjListForm.hs index 6d2d1f61e..d1e66ea7c 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/AdjListForm.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/AdjListForm.hs @@ -1,7 +1,7 @@ {-# LANGUAGE UndecidableInstances #-} -------------------------------------------------------------------------------- -- | --- Module : HGeometry.LowerEnvelope.AdjListForm +-- Module : HGeometry.Plane.LowerEnvelope.AdjListForm -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals @@ -10,7 +10,7 @@ -- form. -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope.AdjListForm +module HGeometry.Plane.LowerEnvelope.AdjListForm ( LowerEnvelope(..) , LowerEnvelope'(LowerEnvelope) , ParallelPlane @@ -45,9 +45,9 @@ import HGeometry.Algorithms.DivideAndConquer import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical import HGeometry.Line.LineEQ -import HGeometry.LowerEnvelope.Connected -import HGeometry.LowerEnvelope.VertexForm (IntersectionLine(..), intersectionLine) -import qualified HGeometry.LowerEnvelope.VertexForm as VertexForm +import HGeometry.Plane.LowerEnvelope.Connected +import HGeometry.Plane.LowerEnvelope.VertexForm (IntersectionLine(..), intersectionLine) +import qualified HGeometry.Plane.LowerEnvelope.VertexForm as VertexForm import HGeometry.Point import HGeometry.Properties import HGeometry.Vector.NonEmpty.Util () diff --git a/hgeometry/src/HGeometry/LowerEnvelope/AtMostThree.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/AtMostThree.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/AtMostThree.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/AtMostThree.hs diff --git a/hgeometry/src/HGeometry/LowerEnvelope/BatchedPointLoc.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/BatchedPointLoc.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/BatchedPointLoc.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/BatchedPointLoc.hs diff --git a/hgeometry/src/HGeometry/LowerEnvelope/ConflictLists.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/ConflictLists.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/ConflictLists.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/ConflictLists.hs diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Connected.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected.hs similarity index 79% rename from hgeometry/src/HGeometry/LowerEnvelope/Connected.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected.hs index 9455fdba0..2214cb9ff 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/Connected.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected.hs @@ -10,7 +10,7 @@ -- form. -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope.Connected +module HGeometry.Plane.LowerEnvelope.Connected ( LowerEnvelope'(LowerEnvelope) , theUnboundedVertex, boundedVertices @@ -28,9 +28,9 @@ module HGeometry.LowerEnvelope.Connected , projectedEdgeGeometries, projectedEdgeGeometry ) where -import HGeometry.LowerEnvelope.Type -import HGeometry.LowerEnvelope.Connected.Type -import HGeometry.LowerEnvelope.Connected.FromVertexForm +import HGeometry.Plane.LowerEnvelope.Type +import HGeometry.Plane.LowerEnvelope.Connected.Type +import HGeometry.Plane.LowerEnvelope.Connected.FromVertexForm import HGeometry.Vector.NonEmpty.Util () diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Connected/FromVertexForm.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/FromVertexForm.hs similarity index 98% rename from hgeometry/src/HGeometry/LowerEnvelope/Connected/FromVertexForm.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/FromVertexForm.hs index 0d8df9938..e3ee52041 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/Connected/FromVertexForm.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/FromVertexForm.hs @@ -1,7 +1,7 @@ {-# LANGUAGE UndecidableInstances #-} -------------------------------------------------------------------------------- -- | --- Module : HGeometry.LowerEnvelope.FromVertexForm +-- Module : HGeometry.Plane.LowerEnvelope.FromVertexForm -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals @@ -10,7 +10,7 @@ -- form. -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope.Connected.FromVertexForm +module HGeometry.Plane.LowerEnvelope.Connected.FromVertexForm ( fromVertexForm' ) where @@ -33,9 +33,9 @@ import HGeometry.Foldable.Sort import HGeometry.Foldable.Util import HGeometry.HyperPlane.NonVertical import HGeometry.Line -import HGeometry.LowerEnvelope.Connected.Type -import HGeometry.LowerEnvelope.Type -import qualified HGeometry.LowerEnvelope.VertexForm as VertexForm +import HGeometry.Plane.LowerEnvelope.Connected.Type +import HGeometry.Plane.LowerEnvelope.Type +import qualified HGeometry.Plane.LowerEnvelope.VertexForm as VertexForm import HGeometry.Point import HGeometry.Properties import HGeometry.Vector diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Connected/Type.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/Type.hs similarity index 98% rename from hgeometry/src/HGeometry/LowerEnvelope/Connected/Type.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/Type.hs index 1693b42de..47312b5db 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/Connected/Type.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Connected/Type.hs @@ -1,7 +1,7 @@ {-# LANGUAGE UndecidableInstances #-} -------------------------------------------------------------------------------- -- | --- Module : HGeometry.LowerEnvelope.Connected.Type +-- Module : HGeometry.Plane.LowerEnvelope.Connected.Type -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals @@ -10,7 +10,7 @@ -- form. -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope.Connected.Type +module HGeometry.Plane.LowerEnvelope.Connected.Type ( LowerEnvelope'(LowerEnvelope) , theUnboundedVertex, boundedVertices , traverseLowerEnvelope @@ -57,9 +57,9 @@ import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical import HGeometry.Line import HGeometry.LineSegment -import HGeometry.LowerEnvelope.Type -import HGeometry.LowerEnvelope.VertexForm (IntersectionLine(..),intersectionLine) -import qualified HGeometry.LowerEnvelope.VertexForm as VertexForm +import HGeometry.Plane.LowerEnvelope.Type +import HGeometry.Plane.LowerEnvelope.VertexForm (IntersectionLine(..),intersectionLine) +import qualified HGeometry.Plane.LowerEnvelope.VertexForm as VertexForm import HGeometry.Point import HGeometry.Properties import HGeometry.Vector diff --git a/hgeometry/src/HGeometry/LowerEnvelope/DivideAndConquer.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/DivideAndConquer.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/DivideAndConquer.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/DivideAndConquer.hs diff --git a/hgeometry/src/HGeometry/Plane/LowerEnvelope/EpsApproximation.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/EpsApproximation.hs new file mode 100644 index 000000000..666b5d9df --- /dev/null +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/EpsApproximation.hs @@ -0,0 +1,32 @@ +module HGeometry.LowerEnvelope.EpsApproximation + ( + + ) where + +import Control.Monad.State.Class +import HGeometry.HyperPlane.Class +import HGeometry.HyperPlane.NonVertical +import System.Random.Stateful +import Witherable + +-------------------------------------------------------------------------------- + +-- | Given a value r, and a set of planes H, we construct a C/r-approximation A of H w.r.t +-- the shallow downward ranges. +epsApproximation :: ( Plane_ plane r + , Ord r, Fractional r, Foldable f, Functor f, Ord plane + ) + => Int -- ^ the parameter r + -> f plane -> f plane +epsApproximation = undefined + +-- | Given a value r, and a set of planes H, we construct a C/r-approximation A of H w.r.t +-- the shallow downward ranges. +epsApproximation' :: ( Plane_ plane r + , Ord r, Fractional r, Foldable f, Functor f, Ord plane + , RandomGen gen, MonadState gen m + , Show plane, Show r + ) + => Int -- ^ the parameter r + -> f plane -> m (f plane) +epsApproximation' r hs = undefined diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Naive.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Naive.hs similarity index 95% rename from hgeometry/src/HGeometry/LowerEnvelope/Naive.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Naive.hs index 96e9fe874..5ebd50ced 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/Naive.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Naive.hs @@ -1,5 +1,5 @@ {-# LANGUAGE UndecidableInstances #-} -module HGeometry.LowerEnvelope.Naive +module HGeometry.Plane.LowerEnvelope.Naive ( lowerEnvelope , lowerEnvelopeVertexForm -- , triangulatedLowerEnvelope @@ -16,8 +16,8 @@ import qualified Data.Set as Set import HGeometry.Combinatorial.Util import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical -import HGeometry.LowerEnvelope.AdjListForm (LowerEnvelope, fromVertexForm) -import HGeometry.LowerEnvelope.VertexForm +import HGeometry.Plane.LowerEnvelope.AdjListForm (LowerEnvelope, fromVertexForm) +import HGeometry.Plane.LowerEnvelope.VertexForm import HGeometry.Point -------------------------------------------------------------------------------- diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Sample.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Sample.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/Sample.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Sample.hs diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Triangulate.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Triangulate.hs similarity index 100% rename from hgeometry/src/HGeometry/LowerEnvelope/Triangulate.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Triangulate.hs diff --git a/hgeometry/src/HGeometry/LowerEnvelope/Type.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Type.hs similarity index 99% rename from hgeometry/src/HGeometry/LowerEnvelope/Type.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/Type.hs index 8368bde61..f3a7c8194 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/Type.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/Type.hs @@ -1,5 +1,5 @@ {-# LANGUAGE UndecidableInstances #-} -module HGeometry.LowerEnvelope.Type +module HGeometry.Plane.LowerEnvelope.Type ( VertexID , BoundedVertexF(Vertex) , location, definers, location2, incidentEdgesB diff --git a/hgeometry/src/HGeometry/LowerEnvelope/VertexForm.hs b/hgeometry/src/HGeometry/Plane/LowerEnvelope/VertexForm.hs similarity index 97% rename from hgeometry/src/HGeometry/LowerEnvelope/VertexForm.hs rename to hgeometry/src/HGeometry/Plane/LowerEnvelope/VertexForm.hs index 6de37fcdb..e6be0926c 100644 --- a/hgeometry/src/HGeometry/LowerEnvelope/VertexForm.hs +++ b/hgeometry/src/HGeometry/Plane/LowerEnvelope/VertexForm.hs @@ -1,7 +1,7 @@ {-# LANGUAGE UndecidableInstances #-} -------------------------------------------------------------------------------- -- | --- Module : HGeometry.LowerEnvelope.VertexForm +-- Module : HGeometry.Plane.LowerEnvelope.VertexForm -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals @@ -10,7 +10,7 @@ -- i.e. storing only the vertices. -- -------------------------------------------------------------------------------- -module HGeometry.LowerEnvelope.VertexForm +module HGeometry.Plane.LowerEnvelope.VertexForm ( VertexForm(VertexForm) , hasVertices, vertices' , singleton @@ -31,7 +31,7 @@ import HGeometry.Combinatorial.Util import HGeometry.HyperPlane.NonVertical import HGeometry.Intersection import HGeometry.Line -import HGeometry.LowerEnvelope.Type +import HGeometry.Plane.LowerEnvelope.Type import HGeometry.Point import HGeometry.Properties import Hiraffe.Graph diff --git a/hgeometry/src/HGeometry/VoronoiDiagram/ViaLowerEnvelope.hs b/hgeometry/src/HGeometry/VoronoiDiagram/ViaLowerEnvelope.hs index 9dc909c6a..2744c1003 100644 --- a/hgeometry/src/HGeometry/VoronoiDiagram/ViaLowerEnvelope.hs +++ b/hgeometry/src/HGeometry/VoronoiDiagram/ViaLowerEnvelope.hs @@ -27,9 +27,9 @@ import HGeometry.Duality import HGeometry.Ext import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical -import HGeometry.LowerEnvelope.AdjListForm -import HGeometry.LowerEnvelope.Naive (lowerEnvelopeVertexForm) -import HGeometry.LowerEnvelope.VertexForm (VertexForm, vertices') +import HGeometry.Plane.LowerEnvelope.AdjListForm +import HGeometry.Plane.LowerEnvelope.Naive (lowerEnvelopeVertexForm) +import HGeometry.Plane.LowerEnvelope.VertexForm (VertexForm, vertices') import HGeometry.Point import HGeometry.Properties diff --git a/hgeometry/test-with-ipe/test/VoronoiDiagram/VoronoiSpec.hs b/hgeometry/test-with-ipe/test/VoronoiDiagram/VoronoiSpec.hs index dcc14e0a4..95d46591b 100644 --- a/hgeometry/test-with-ipe/test/VoronoiDiagram/VoronoiSpec.hs +++ b/hgeometry/test-with-ipe/test/VoronoiDiagram/VoronoiSpec.hs @@ -12,8 +12,8 @@ import HGeometry.Duality import HGeometry.Ext import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical -import HGeometry.LowerEnvelope -import HGeometry.LowerEnvelope.AdjListForm +import HGeometry.Plane.LowerEnvelope +import HGeometry.Plane.LowerEnvelope.AdjListForm import qualified Data.Set as Set import qualified Data.List.NonEmpty as NonEmpty import qualified Data.Sequence as Seq diff --git a/hgeometry/test/LowerEnvelope/NaiveSpec.hs b/hgeometry/test/LowerEnvelope/NaiveSpec.hs index 535e25bc9..647e408e5 100644 --- a/hgeometry/test/LowerEnvelope/NaiveSpec.hs +++ b/hgeometry/test/LowerEnvelope/NaiveSpec.hs @@ -8,8 +8,8 @@ import HGeometry.Combinatorial.Util import HGeometry.HyperPlane.Class import HGeometry.HyperPlane.NonVertical import HGeometry.Instances () -import HGeometry.LowerEnvelope -import HGeometry.LowerEnvelope.VertexForm +import HGeometry.Plane.LowerEnvelope +import HGeometry.Plane.LowerEnvelope.VertexForm import HGeometry.Number.Real.Rational import HGeometry.Point import HGeometry.Vector