Go to the documentation of this file. 1 #ifndef SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
2 #define SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
53 class DecorativeGeometryImplementation;
178 int getBodyId()
const;
184 int getIndexOnBody()
const;
190 void* getUserRef()
const;
194 Real getResolution()
const;
204 const Vec3& getScaleFactors()
const;
226 const Vec3& getColor()
const;
228 Real getOpacity()
const;
231 Real getLineThickness()
const;
240 int getFaceCamera()
const;
248 Representation getRepresentation()
const;
254 bool isOwnerHandle()
const;
255 bool isEmptyHandle()
const;
258 const DecorativeGeometryRep&
getRep()
const {assert(rep);
return *rep;}
259 DecorativeGeometryRep&
updRep() {assert(rep);
return *rep;}
261 DecorativeGeometryRep*
rep;
276 const Vec3& getPoint()
const;
293 class DecorativePointRep& updRep();
294 const DecorativePointRep& getRep()
const;
328 const Vec3& getPoint1()
const;
329 const Vec3& getPoint2()
const;
333 class DecorativeLineRep& updRep();
334 const DecorativeLineRep& getRep()
const;
344 Real getRadius()
const;
361 class DecorativeCircleRep& updRep();
362 const DecorativeCircleRep& getRep()
const;
372 Real getRadius()
const;
389 class DecorativeSphereRep& updRep();
390 const DecorativeSphereRep& getRep()
const;
402 const Vec3& getRadii()
const;
419 class DecorativeEllipsoidRep& updRep();
420 const DecorativeEllipsoidRep& getRep()
const;
431 const Vec3& getHalfLengths()
const;
448 class DecorativeBrickRep& updRep();
449 const DecorativeBrickRep& getRep()
const;
461 Real getRadius()
const;
462 Real getHalfHeight()
const;
479 class DecorativeCylinderRep& updRep();
480 const DecorativeCylinderRep& getRep()
const;
491 Real getAxisLength()
const;
508 class DecorativeFrameRep& updRep();
509 const DecorativeFrameRep& getRep()
const;
519 const std::string& getText()
const;
524 bool getIsScreenText()
const;
542 class DecorativeTextRep& updRep();
543 const DecorativeTextRep& getRep()
const;
569 class DecorativeMeshRep& updRep();
570 const DecorativeMeshRep& getRep()
const;
582 const std::string& getMeshFile()
const;
602 class DecorativeMeshFileRep& updRep();
603 const DecorativeMeshFileRep& getRep()
const;
618 Real getTorusRadius()
const;
619 Real getTubeRadius()
const;
638 class DecorativeTorusRep& updRep();
639 const DecorativeTorusRep& getRep()
const;
657 const Vec3& getStartPoint()
const;
658 const Vec3& getEndPoint()
const;
659 const Real& getTipLength()
const;
682 class DecorativeArrowRep& updRep();
683 const DecorativeArrowRep& getRep()
const;
699 Real height = 1.0,
Real baseRadius = 0.5);
700 const Vec3& getOrigin()
const;
701 const UnitVec3& getDirection()
const;
702 const Real& getHeight()
const;
703 const Real& getBaseRadius()
const;
727 class DecorativeConeRep& updRep();
728 const DecorativeConeRep& getRep()
const;
755 int getNumDecorations()
const;
776 class DecorationsRep& updRep();
777 const DecorationsRep& getRep()
const;
803 #endif // SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
const Vec3 White
RGB=( 1, 1, 1)
DecorativePoint & setBodyId(int b)
Definition: DecorativeGeometry.h:279
DecorativeGeometry & setColor(const Vec3 &rgb)
Request a specific color for this DecorativeGeometry object.
DecorativeEllipsoid & setUserRef(void *p)
Definition: DecorativeGeometry.h:407
const Vec3 Gray
RGB=(.5,.5,.5)
DecorativeFrame & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:497
DecorativeArrow & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:672
DecorativeArrow & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:671
Decorations & setUserRef(void *p)
Definition: DecorativeGeometry.h:763
bool hasRep() const
Definition: DecorativeGeometry.h:257
DecorativeText & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:537
DecorativeCone & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:720
DecorativeFrame & setOpacity(Real o)
Definition: DecorativeGeometry.h:501
Decorations & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:764
This defines a circle in the x-y plane, centered at the origin.
Definition: DecorativeGeometry.h:339
DecorativeMeshFile & setBodyId(int b)
Definition: DecorativeGeometry.h:588
DecorativeCone & setResolution(Real r)
Definition: DecorativeGeometry.h:715
DecorativeGeometryRep * rep
Definition: DecorativeGeometry.h:261
DecorativeMeshFile & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:589
DecorativeArrow & setBodyId(int b)
Definition: DecorativeGeometry.h:666
DecorativeMeshFile & setOpacity(Real o)
Definition: DecorativeGeometry.h:595
DecorativeArrow & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:667
DecorativeMesh & setOpacity(Real o)
Definition: DecorativeGeometry.h:562
DecorativeCircle & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:350
DecorativeFrame & setBodyId(int b)
Definition: DecorativeGeometry.h:494
DecorativeCylinder & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:471
This defines a sphere centered at the origin.
Definition: DecorativeGeometry.h:367
DecorativeFrame & setResolution(Real r)
Definition: DecorativeGeometry.h:498
DecorativeSphere & setResolution(Real r)
Definition: DecorativeGeometry.h:379
DecorativeLine & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:321
DecorativeMeshFile & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:594
DecorativeBrick & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:437
DecorativeCircle & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:352
DecorativeTorus & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:627
DecorativeGeometry & setFaceCamera(int shouldFace)
Set whether the geometry acts as a billboard, always rotating to face the camera.
DecorativeCone & setUserRef(void *p)
Definition: DecorativeGeometry.h:713
DecorativeGeometry & setBodyId(int bodyId)
By default the geometry should be placed relative to the Ground frame.
DecorativeMesh & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:556
DecorativeCone & setOpacity(Real o)
Definition: DecorativeGeometry.h:718
A cone with origin point, direction, height and base radius.
Definition: DecorativeGeometry.h:696
DecorativeText & setBodyId(int b)
Definition: DecorativeGeometry.h:527
DecorativeTorus & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:628
DecorativeSphere & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:376
DecorativePoint & setUserRef(void *p)
Definition: DecorativeGeometry.h:281
DecorativeEllipsoid & setResolution(Real r)
Definition: DecorativeGeometry.h:409
DecorativePoint & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:282
DecorativeMesh & setResolution(Real r)
Definition: DecorativeGeometry.h:559
DecorativePoint & setResolution(Real r)
Definition: DecorativeGeometry.h:283
This defines geometry to represent a coordinate frame.
Definition: DecorativeGeometry.h:486
DecorativeCircle & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:356
DecorativeArrow & setResolution(Real r)
Definition: DecorativeGeometry.h:670
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
DecorativeCircle & setBodyId(int b)
Definition: DecorativeGeometry.h:347
DecorativeMesh & setUserRef(void *p)
Definition: DecorativeGeometry.h:557
DecorativeArrow & setOpacity(Real o)
Definition: DecorativeGeometry.h:673
DecorativeBrick & setLineThickness(Real t)
Definition: DecorativeGeometry.h:442
DecorativeCylinder & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:466
DecorativeSphere & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:381
DecorativeTorus & setUserRef(void *p)
Definition: DecorativeGeometry.h:624
DecorativeCylinder & setResolution(Real r)
Definition: DecorativeGeometry.h:469
DecorativeTorus & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:631
This defines a displayable torus, the torus is centered at the origin with the axial direction aligne...
Definition: DecorativeGeometry.h:612
DecorativeCylinder & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:474
DecorativeCylinder & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:468
DecorativeText & setUserRef(void *p)
Definition: DecorativeGeometry.h:529
This defines a rectangular solid centered at the origin and aligned with the local frame axes.
Definition: DecorativeGeometry.h:426
DecorativePoint & setOpacity(Real o)
Definition: DecorativeGeometry.h:286
DecorativeEllipsoid & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:410
DecorativeSphere & setBodyId(int b)
Definition: DecorativeGeometry.h:375
DecorativeCircle & setOpacity(Real o)
Definition: DecorativeGeometry.h:354
Decorations & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:770
DecorativeEllipsoid & setLineThickness(Real t)
Definition: DecorativeGeometry.h:413
DecorativeCone & setLineThickness(Real t)
Definition: DecorativeGeometry.h:719
DecorativePoint & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:288
DecorativeTorus & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:625
#define SimTK_PIMPL_DOWNCAST(Derived, Parent)
Similar to the above but for private implementation abstract classes, that is, abstract class hierarc...
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:593
DecorativeGeometry & setRepresentation(const Representation &)
Request a particular rendering representation of this DecorativeGeometry object.
DecorativePoint & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:285
DecorativeGeometry()
Default constructor creates an empty handle.
Definition: DecorativeGeometry.h:89
Decorations & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:762
An arrow with start point, end point and tip-length.
Definition: DecorativeGeometry.h:654
DecorativeMeshFile & setResolution(Real r)
Definition: DecorativeGeometry.h:592
DecorativeMesh & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:564
DecorativeTorus & setResolution(Real r)
Definition: DecorativeGeometry.h:626
DecorativeTorus & setLineThickness(Real t)
Definition: DecorativeGeometry.h:630
DecorativeBrick & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:443
DecorativeEllipsoid & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:406
DecorativeFrame & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:495
DecorativeCircle & setLineThickness(Real t)
Definition: DecorativeGeometry.h:355
DecorativeCylinder & setBodyId(int b)
Definition: DecorativeGeometry.h:465
DecorativeArrow & setLineThickness(Real t)
Definition: DecorativeGeometry.h:674
DecorativeTorus & setBodyId(int b)
Definition: DecorativeGeometry.h:622
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
DecorativeFrame & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:503
Decorations & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:767
This defines a single DecorativeGeometry object that is composed of a collection of other DecorativeG...
Definition: DecorativeGeometry.h:740
DecorativeBrick & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:440
Decorations & setResolution(Real r)
Definition: DecorativeGeometry.h:765
Representation
Drawing modes.
Definition: DecorativeGeometry.h:99
DecorativeSphere & setOpacity(Real o)
Definition: DecorativeGeometry.h:382
DecorativeSphere & setLineThickness(Real t)
Definition: DecorativeGeometry.h:383
DecorativeSphere & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:380
DecorativeGeometry & setLineThickness(Real)
Request an adjustment to the default rendering of lines and curves.
DecorativeLine & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:317
DecorativeCircle & setResolution(Real r)
Definition: DecorativeGeometry.h:351
This class provides a description of a mesh made of polygonal faces (not limited to triangles).
Definition: PolygonalMesh.h:70
DecorativeGeometry & setOpacity(Real)
Request a level of transparency for this DecorativeGeometry.
DecorativeBrick & setOpacity(Real o)
Definition: DecorativeGeometry.h:441
DecorativeMeshFile & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:597
DecorativeMeshFile & setLineThickness(Real t)
Definition: DecorativeGeometry.h:596
const Vec3 Yellow
RGB=( 1, 1, 0)
DecorativeBrick & setResolution(Real r)
Definition: DecorativeGeometry.h:438
DecorativeGeometry & setIndexOnBody(int index)
For selection or other purposes, you may want to use this method to store an index that can identify ...
DecorativeEllipsoid & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:411
DecorativeLine & setBodyId(int b)
Definition: DecorativeGeometry.h:316
A line between two points.
Definition: DecorativeGeometry.h:306
DecorativeFrame & setLineThickness(Real t)
Definition: DecorativeGeometry.h:502
Decorations & setOpacity(Real o)
Definition: DecorativeGeometry.h:768
DecorativeCylinder & setLineThickness(Real t)
Definition: DecorativeGeometry.h:473
Decorations & setBodyId(int b)
Definition: DecorativeGeometry.h:761
DecorativeCone & setBodyId(int b)
Definition: DecorativeGeometry.h:711
DecorativeBrick & setBodyId(int b)
Definition: DecorativeGeometry.h:434
DecorativeMeshFile & setUserRef(void *p)
Definition: DecorativeGeometry.h:590
const DecorativeGeometryRep & getRep() const
Definition: DecorativeGeometry.h:258
DecorativeMesh & setLineThickness(Real t)
Definition: DecorativeGeometry.h:563
DecorativeGeometry(class DecorativeGeometryRep *r)
Definition: DecorativeGeometry.h:256
DecorativeEllipsoid & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:408
DecorativeMeshFile & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:593
A point of interest.
Definition: DecorativeGeometry.h:269
DecorativeLine & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:325
DecorativeCylinder & setOpacity(Real o)
Definition: DecorativeGeometry.h:472
DecorativeLine & setUserRef(void *p)
Definition: DecorativeGeometry.h:318
This is the client-side interface to an implementation-independent representation of "Decorations" su...
Definition: DecorativeGeometry.h:86
This defines a text label with its base at the origin.
Definition: DecorativeGeometry.h:514
const Vec3 Magenta
RGB=( 1, 0, 1)
DecorativeText & setOpacity(Real o)
Definition: DecorativeGeometry.h:534
DecorativeFrame & setUserRef(void *p)
Definition: DecorativeGeometry.h:496
UnitVec< Real, 1 > UnitVec3
Definition: UnitVec.h:41
const Vec3 Black
RGB=( 0, 0, 0)
DecorativeText & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:533
DecorativeLine & setLineThickness(Real t)
Definition: DecorativeGeometry.h:324
DecorativeMeshFile & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:591
This defines a displayable mesh by referencing an already-existing PolygonalMesh object.
Definition: DecorativeGeometry.h:549
DecorativeSphere & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:378
DecorativeGeometry & setScale(Real scale)
Convenience method to set all three scale factors to the same value.
Definition: DecorativeGeometry.h:171
DecorativeText & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:528
const Vec3 Blue
RGB=( 0, 0, 1)
DecorativeSphere & setUserRef(void *p)
Definition: DecorativeGeometry.h:377
DecorativeCircle & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:348
DecorativeText & setResolution(Real r)
Definition: DecorativeGeometry.h:531
DecorativeCone & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:714
DecorativeBrick & setUserRef(void *p)
Definition: DecorativeGeometry.h:436
DecorativeFrame & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:499
This defines an ellipsoidal solid centered at the origin and aligned with the local frame axes.
Definition: DecorativeGeometry.h:396
DecorativePoint & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:284
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:606
DecorativeArrow & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:669
DecorativeLine & setResolution(Real r)
Definition: DecorativeGeometry.h:320
DecorativeLine & setOpacity(Real o)
Definition: DecorativeGeometry.h:323
DecorativePoint & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:280
Use this abstract class to connect your implementation of decorative geometry to the implementation-i...
Definition: DecorativeGeometry.h:782
DecorativeGeometry & setUserRef(void *userRef)
Use this method to store an arbitrary reference pointer with this DecorativeGeometry object.
virtual ~DecorativeGeometryImplementation()
Definition: DecorativeGeometry.h:784
DecorativeEllipsoid & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:414
DecorativeLine & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:319
DecorativeArrow & setUserRef(void *p)
Definition: DecorativeGeometry.h:668
DecorativeBrick & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:435
Vec< 3 > Vec3
This is the most common 3D vector type: a column of 3 Real values stored consecutively in memory (pac...
Definition: SmallMatrix.h:129
DecorativeFrame & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:500
DecorativeBrick & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:439
This defines a displayable mesh by referencing a file name containing the mesh.
Definition: DecorativeGeometry.h:579
DecorativeGeometry & setResolution(Real)
Each concrete DecorativeGeometry object is expected to have a default resolution that gets the point ...
DecorativeCone & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:716
DecorativeGeometry & setScaleFactors(const Vec3 &scale)
Each concrete DecorativeGeometry object is expected to have a default size around "1",...
DecorativeCircle & setUserRef(void *p)
Definition: DecorativeGeometry.h:349
DecorativeCylinder & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:470
DecorativePoint & setLineThickness(Real t)
Definition: DecorativeGeometry.h:287
DecorativeMesh & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:560
DecorativeCylinder & setUserRef(void *p)
Definition: DecorativeGeometry.h:467
const Vec3 Purple
RGB=(.5, 0,.5)
DecorativeText & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:532
DecorativeMesh & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:558
DecorativeCone & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:717
const Vec3 Cyan
RGB=( 0, 1, 1)
DecorativeGeometry & setTransform(const Transform &X_BG)
This transform shifts the generated polygons with respect to this object's local frame.
DecorativeText & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:530
This defines a cylinder centered on the origin and aligned in the y direction.
Definition: DecorativeGeometry.h:455
DecorativeEllipsoid & setOpacity(Real o)
Definition: DecorativeGeometry.h:412
Decorations & setLineThickness(Real t)
Definition: DecorativeGeometry.h:769
DecorativeText & setLineThickness(Real t)
Definition: DecorativeGeometry.h:535
DecorativeText & setFaceCamera(int yn)
Definition: DecorativeGeometry.h:536
DecorativeSphere & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:384
DecorativeEllipsoid & setBodyId(int b)
Definition: DecorativeGeometry.h:405
DecorativeArrow & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:675
DecorativeGeometryRep & updRep()
Definition: DecorativeGeometry.h:259
DecorativeTorus & setOpacity(Real o)
Definition: DecorativeGeometry.h:629
DecorativeLine & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:322
const Vec3 Green
RGB=( 0, 1, 0)
DecorativeMesh & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:561
DecorativeCone & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:712
DecorativeCircle & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:353
DecorativeTorus & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:623
const Vec3 Red
RGB=( 1, 0, 0)
const Vec3 Orange
RGB=( 1,.5, 0)
DecorativeMesh & setBodyId(int b)
Definition: DecorativeGeometry.h:555
Decorations & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:766