Bounded versions of Graphic and LocGraphic.
Bounded meaning they are actually Images that return the bounding box of the Graphic.
- type BoundedGraphic u = Image u (BoundingBox u)
- type DBoundedGraphic = BoundedGraphic Double
- type BoundedLocGraphic u = LocImage u (BoundingBox u)
- type DBoundedLocGraphic = BoundedLocGraphic Double
- type BoundedLocThetaGraphic u = LocThetaImage u (BoundingBox u)
- type DBoundedLocThetaGraphic = BoundedLocThetaGraphic Double
- emptyBoundedLocGraphic :: Num u => BoundedLocGraphic u
- emptyBoundedLocThetaGraphic :: Num u => BoundedLocThetaGraphic u
- centerOrthoBBox :: (Real u, Floating u) => Radian -> BoundingBox u -> BoundingBox u
- illustrateBoundedGraphic :: Fractional u => BoundedGraphic u -> BoundedGraphic u
- illustrateBoundedLocGraphic :: Fractional u => BoundedLocGraphic u -> BoundedLocGraphic u
- illustrateBoundedLocThetaGraphic :: Fractional u => BoundedLocThetaGraphic u -> BoundedLocThetaGraphic u
- bbrectangle :: Fractional u => BoundingBox u -> Graphic u
Bounded graphic / loc graphic
LocThetaGraphic with a bounding box.
Note the size of bounding box for the "same" shape will vary according to the rotation. A bounding box is always orthonormal (?) to the x- and y-axes.
Build an empty
emptyBoundedLocThetaGraphic is treated as a null primitive
Wumpus-Core and is not drawn, although it does generate
the minimum bounding box with both the bottom-left and
upper-right corners at the implicit start point (the implicit
inclination can be ignored).
theta * bbox -> BBox
Rotate a bounding box by
theta about its center. Take the
new bounding box.
Remember that bounding boxes are always orthonormal rectangles, so the dimensions as well as the positions may change under rotation.