
v2 = sum $ zipWith ( * ) ( toList v1 ) ( toList v2 ) isZero :: a -> Bool - is a zero vector. ) :: a -> a -> Double - dot product v1 #. class Eq a => Vector a where rVector :: a -> String toList :: a -> ( #* ) :: a -> a -> a - cross product ( #- ) :: a -> a -> a - difference between two vectors ( #. They are used in transformations of - 'Model's of their type. FilePath ( FilePath ) - A vector in 2 or 3-space. Semigroup ( Semigroup ( ( ), sconcat ), Monoid ( mconcat, mempty, mappend ) ) import qualified Data. List ( elemIndices, nub, intercalate ) import qualified Data. SRGB ( channelRed, channelBlue, channelGreen, toSRGB ) import Data. Colour ( Colour, AlphaColour, alphaChannel, darken, over, black ) import Data. var, fn, fs, fa, def, - ** General convenience functions diam, draw, drawL, ( # ), module Colours ) where import Data.

), - * Primitive creation - ** 'Model2d's rectangle, square, circle, polygon, unsafePolygon, projection, importFile, - ** 'Model3d's sphere, box, cube, cylinder, obCylinder, polyhedron, unsafePolyhedron, multMatrix, linearExtrude, rotateExtrude, surface, solid, - * Functions - ** Combinations union, intersection, difference, minkowski, hull, - ** Transformations scale, resize, rotate, translate, mirror, color, transparent, up, - ** Rendering render, renderL, - ** 'Facet's.

Model, Vector, - ** Types aliases with fixed dimensions Model2d, Model3d, Vector2d, Vector3d, - ** Other type aliases Facet, TransMatrix, - ** Type for 'unsafePolyhedron' 'Sides' argument Sides (. OpenSCAD ( - * Types - ** A 'Model' to be rendered, and a 'Vector' that fixes the - number of dimensions it has.
