DecorativeGeometry.h File Reference


Detailed Description

This is the client-side interface to an implementation-independent representation of "Decorations" suitable for visualization, annotation, logging, or debugging but which cannot have any effect on the behavior of a System or the evolution of a Study.

DO NOT confuse this with AnalyticGeometry which can represent physically meaningful objects that may interact and change the behavior of a System. However, an AnalyticGeometry object is likely to generate a corresponding Decoration for visualization.

Why is there a DecorativeGeometry facility at the System level at all, so far away from any application program? That's because for crude visualization and debugging purposes, the Subsystems themselves are best able to produce some illustrative geometry. Otherwise, you need a special purpose visualization tool which understands what's going on inside each subsystem. If you don't mind taking what you get, just ask each subsystem to generate what it thinks would be helpful visualization. To do that, the subysystems need a way to talk about geometry without knowing anything about how that geometry will eventually get onto someone's screen. And that's why we're here!

Each DecorativeGeometry object has its own local coordinate system and is defined self-consistently but independent of anything else. Clients can associate these with a reference frame (e.g. a body), and place the local frame of the geometry objects on the reference frame, or at a fixed transform from the reference frame. That places the DecorativeGeometry objects in a scene. We support both 3D objects which are attached to actors in the scene, and 2D "screen" objects like titles which are attached to the display rather than the actors. The classes here deal only with the local-frame definitions of the geometric objects, not their placement in the scene.

#include "SimTKcommon/Simmatrix.h"
#include <cassert>

Go to the source code of this file.

Namespaces

namespace  SimTK

Classes

class  DecorativeGeometry
 This is an abstract handle class using the PIMPL design pattern to hide the private implementation. More...
class  DecorativeLine
 A line between two points. More...
class  DecorativeCircle
 This defines a circle in the x-y plane, centered at the origin. More...
class  DecorativeSphere
 This defines a sphere centered at the origin. More...
class  DecorativeEllipsoid
 This defines an ellipsoidal solid centered at the origin and aligned with the local frame axes. More...
class  DecorativeBrick
 This defines a rectangular solid centered at the origin and aligned with the local frame axes. More...
class  DecorativeCylinder
 This defines a cylinder centered on the origin and aligned in the y direction. More...
class  DecorativeFrame
 This defines geometry to represent a coordinate frame. More...
class  DecorativeText
 This defines a text label with its base at the origin. More...
class  DecorativeGeometryImplementation
 Use this abstract class to connect your implementation of decorative geometry to the implementation-independent classes above. More...


Generated on Thu Feb 28 01:34:34 2008 for SimTKcommon by  doxygen 1.4.7