waterfall-cad-0.3.0.0: Declarative CAD/Solid Modeling Library
Safe HaskellNone
LanguageHaskell2010

Waterfall.Internal.Solid

Synopsis

Documentation

newtype Solid Source #

The Boundary Representation of a solid object.

Alternatively, a region of 3d Space.

Under the hood, this is represented by an OpenCascade Shape. The underlying shape should either be a Solid, or a CompSolid.

While you shouldn't need to know what this means to use the library, please feel free to report a bug if you're able to construct a Solid where this isnt' the case (without using internal functions).

Constructors

Solid 

Fields

Instances

Instances details
Monoid Solid Source # 
Instance details

Defined in Waterfall.Internal.Solid

Methods

mempty :: Solid #

mappend :: Solid -> Solid -> Solid #

mconcat :: [Solid] -> Solid #

Semigroup Solid Source #

While Solid could form a Semigroup via either union or intersection. the default Semigroup is from union.

The Semigroup from intersection can be obtained using Meet from the lattices package.

Instance details

Defined in Waterfall.Internal.Solid

Methods

(<>) :: Solid -> Solid -> Solid #

sconcat :: NonEmpty Solid -> Solid #

stimes :: Integral b => b -> Solid -> Solid #

BoundedJoinSemiLattice Solid Source # 
Instance details

Defined in Waterfall.Internal.Solid

Methods

bottom :: Solid #

Lattice Solid Source # 
Instance details

Defined in Waterfall.Internal.Solid

Methods

(\/) :: Solid -> Solid -> Solid #

(/\) :: Solid -> Solid -> Solid #

Transformable Solid Source # 
Instance details

Defined in Waterfall.Transforms

union :: Solid -> Solid -> Solid Source #

Take the sum of two solids

The region occupied by either one of them.

difference :: Solid -> Solid -> Solid Source #

Take the difference of two solids

The region occupied by the first, but not the second.

intersection :: Solid -> Solid -> Solid Source #

Take the intersection of two solids

The region occupied by both of them.

nowhere :: Solid Source #

An empty solid

Be warned that complement nowhere does not appear to work correctly.

complement :: Solid -> Solid Source #

Invert a Solid, equivalent to not in boolean algebra.

The complement of a solid represents the solid with the same surface, but where the opposite side of that surface is the "inside" of the solid.

Be warned that complement nowhere does not appear to work correctly.

debug :: Solid -> String Source #

print debug information about a Solid when it's evaluated exposes the properties of the underlying OpenCacade.TopoDS.Shape