Simbody  3.6
DecorativeGeometry.h
Go to the documentation of this file.
1 #ifndef SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
2 #define SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
3 
4 /* -------------------------------------------------------------------------- *
5  * Simbody(tm): SimTKcommon *
6  * -------------------------------------------------------------------------- *
7  * This is part of the SimTK biosimulation toolkit originating from *
8  * Simbios, the NIH National Center for Physics-Based Simulation of *
9  * Biological Structures at Stanford, funded under the NIH Roadmap for *
10  * Medical Research, grant U54 GM072970. See https://simtk.org/home/simbody. *
11  * *
12  * Portions copyright (c) 2005-15 Stanford University and the Authors. *
13  * Authors: Michael Sherman *
14  * Contributors: Jack Middleton, Peter Eastman, Ayman Habib *
15  * *
16  * Licensed under the Apache License, Version 2.0 (the "License"); you may *
17  * not use this file except in compliance with the License. You may obtain a *
18  * copy of the License at http://www.apache.org/licenses/LICENSE-2.0. *
19  * *
20  * Unless required by applicable law or agreed to in writing, software *
21  * distributed under the License is distributed on an "AS IS" BASIS, *
22  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
23  * See the License for the specific language governing permissions and *
24  * limitations under the License. *
25  * -------------------------------------------------------------------------- */
26 
30 #include "SimTKcommon/Simmatrix.h"
32 
33 #include <cassert>
34 
35 
36 namespace SimTK {
37 
38 // Some common RGB values;
39 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Black;
40 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Gray;
41 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Red;
42 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Green;
43 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Blue;
48 extern SimTK_SimTKCOMMON_EXPORT const Vec3 Cyan;
49 extern SimTK_SimTKCOMMON_EXPORT const Vec3 White;
50 
51 // Drawing representations
52 
53 class DecorativeGeometryImplementation;
54 
87 public:
89 DecorativeGeometry() : rep(0) { }
96 DecorativeGeometry& operator=(const DecorativeGeometry& source);
97 
100  Hide = 0,
101  DrawPoints = 1,
102  DrawWireframe = 2,
103  DrawSurface = 3,
104 
105  DrawDefault = -1
106 };
107 
118 DecorativeGeometry& setBodyId(int bodyId);
119 
127 DecorativeGeometry& setIndexOnBody(int index);
128 
142 DecorativeGeometry& setUserRef(void* userRef);
143 
149 DecorativeGeometry& setTransform(const Transform& X_BG);
150 
159 DecorativeGeometry& setResolution(Real);
160 
168 DecorativeGeometry& setScaleFactors(const Vec3& scale);
169 
171 DecorativeGeometry& setScale(Real scale) {return setScaleFactors(Vec3(scale));}
172 
178 int getBodyId() const;
179 
184 int getIndexOnBody() const;
185 
190 void* getUserRef() const;
191 
194 Real getResolution() const;
195 
199 const Transform& getTransform() const;
200 
204 const Vec3& getScaleFactors() const;
205 
211 DecorativeGeometry& setColor(const Vec3& rgb); // 0-1 for each color
212 
216 DecorativeGeometry& setOpacity(Real); // 0-1; default is 1 (opaque)
217 
222 DecorativeGeometry& setLineThickness(Real);
223 
226 const Vec3& getColor() const;
228 Real getOpacity() const;
231 Real getLineThickness() const;
232 
237 DecorativeGeometry& setFaceCamera(int shouldFace);
240 int getFaceCamera() const;
241 
245 DecorativeGeometry& setRepresentation(const Representation&);
246 
248 Representation getRepresentation() const;
249 
250 void implementGeometry(DecorativeGeometryImplementation&) const;
251 
252 // Bookkeeping below here -- internal use only. Don't look below or you will
253 // turn into a pillar of salt.
254 bool isOwnerHandle() const;
255 bool isEmptyHandle() const;
256 explicit DecorativeGeometry(class DecorativeGeometryRep* r) : rep(r) { }
257 bool hasRep() const {return rep!=0;}
258 const DecorativeGeometryRep& getRep() const {assert(rep); return *rep;}
259 DecorativeGeometryRep& updRep() {assert(rep); return *rep;}
260 protected:
261 DecorativeGeometryRep* rep;
262 };
263 
264 
270 public:
271  explicit DecorativePoint(const Vec3& p=Vec3(0));
272 
273  // These are specific to DecorativePoint.
274 
275  DecorativePoint& setPoint(const Vec3& p);
276  const Vec3& getPoint() const;
277 
278  // Retain the derived type when setting generic geometry options.
285  DecorativePoint& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
289  { DecorativeGeometry::setRepresentation(r); return *this; }
290 
292 private:
293  class DecorativePointRep& updRep();
294  const DecorativePointRep& getRep() const;
295 };
296 
307 public:
308  explicit DecorativeLine(const Vec3& p1=Vec3(0), const Vec3& p2=Vec3(1)); // line between p1 and p2
309 
310  // These are specific to lines.
311  DecorativeLine& setPoint1(const Vec3& p1);
312  DecorativeLine& setPoint2(const Vec3& p2);
313  DecorativeLine& setEndpoints(const Vec3& p1, const Vec3& p2);
314 
315  // Retain the derived type when setting generic geometry options.
322  DecorativeLine& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
326  { DecorativeGeometry::setRepresentation(r); return *this; }
327 
328  const Vec3& getPoint1() const;
329  const Vec3& getPoint2() const;
330 
332 private:
333  class DecorativeLineRep& updRep();
334  const DecorativeLineRep& getRep() const;
335 };
336 
340 public:
341  explicit DecorativeCircle(Real radius=0.5);
342 
343  DecorativeCircle& setRadius(Real);
344  Real getRadius() const;
345 
346  // Retain the derived type when setting generic geometry options.
353  DecorativeCircle& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
357  { DecorativeGeometry::setRepresentation(r); return *this; }
358 
360 private:
361  class DecorativeCircleRep& updRep();
362  const DecorativeCircleRep& getRep() const;
363 };
364 
368 public:
369  explicit DecorativeSphere(Real radius=0.5);
370 
371  DecorativeSphere& setRadius(Real);
372  Real getRadius() const;
373 
374  // Retain the derived type when setting generic geometry options.
381  DecorativeSphere& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
385  { DecorativeGeometry::setRepresentation(r); return *this; }
386 
388 private:
389  class DecorativeSphereRep& updRep();
390  const DecorativeSphereRep& getRep() const;
391 };
392 
397 public:
398  explicit DecorativeEllipsoid(const Vec3& radii =
399  Vec3(Real(0.5),Real(1/3.),Real(0.25)));
400 
401  DecorativeEllipsoid& setRadii(const Vec3&);
402  const Vec3& getRadii() const;
403 
404  // Retain the derived type when setting generic geometry options.
415  { DecorativeGeometry::setRepresentation(r); return *this; }
416 
418 private:
419  class DecorativeEllipsoidRep& updRep();
420  const DecorativeEllipsoidRep& getRep() const;
421 };
422 
427 public:
428  explicit DecorativeBrick(const Vec3& halfLengths = Vec3(Real(0.5)));
429 
430  DecorativeBrick& setHalfLengths(const Vec3&);
431  const Vec3& getHalfLengths() const;
432 
433  // Retain the derived type when setting generic geometry options.
440  DecorativeBrick& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
444  { DecorativeGeometry::setRepresentation(r); return *this; }
445 
447 private:
448  class DecorativeBrickRep& updRep();
449  const DecorativeBrickRep& getRep() const;
450 };
451 
456 public:
457  explicit DecorativeCylinder(Real radius=0.5, Real halfHeight=0.5);
458 
459  DecorativeCylinder& setRadius(Real);
460  DecorativeCylinder& setHalfHeight(Real);
461  Real getRadius() const;
462  Real getHalfHeight() const;
463 
464  // Retain the derived type when setting generic geometry options.
475  { DecorativeGeometry::setRepresentation(r); return *this; }
476 
478 private:
479  class DecorativeCylinderRep& updRep();
480  const DecorativeCylinderRep& getRep() const;
481 };
482 
487 public:
488  explicit DecorativeFrame(Real axisLength=1);
489 
490  DecorativeFrame& setAxisLength(Real);
491  Real getAxisLength() const;
492 
493  // Retain the derived type when setting generic geometry options.
500  DecorativeFrame& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
504  { DecorativeGeometry::setRepresentation(r); return *this; }
505 
507 private:
508  class DecorativeFrameRep& updRep();
509  const DecorativeFrameRep& getRep() const;
510 };
511 
515 public:
516  explicit DecorativeText(const std::string& label="");
517 
518  DecorativeText& setText(const std::string& label);
519  const std::string& getText() const;
520 
523  DecorativeText& setIsScreenText(bool isScreen);
524  bool getIsScreenText() const;
525 
526  // Retain the derived type when setting generic geometry options.
533  DecorativeText& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
538  { DecorativeGeometry::setRepresentation(r); return *this; }
539 
541 private:
542  class DecorativeTextRep& updRep();
543  const DecorativeTextRep& getRep() const;
544 };
545 
550 public:
551  explicit DecorativeMesh(const PolygonalMesh& mesh);
552  const PolygonalMesh& getMesh() const;
553 
554  // Retain the derived type when setting generic geometry options.
561  DecorativeMesh& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
565  { DecorativeGeometry::setRepresentation(r); return *this; }
566 
568 private:
569  class DecorativeMeshRep& updRep();
570  const DecorativeMeshRep& getRep() const;
571 };
572 
573 
580 public:
581  explicit DecorativeMeshFile(const std::string& meshFileName);
582  const std::string& getMeshFile() const;
585  const PolygonalMesh& getMesh() const;
586 
587  // Retain the derived type when setting generic geometry options.
598  { DecorativeGeometry::setRepresentation(r); return *this; }
599 
601 private:
602  class DecorativeMeshFileRep& updRep();
603  const DecorativeMeshFileRep& getRep() const;
604 };
605 
606 
613 public:
614  explicit DecorativeTorus(Real torusR=1, Real tubeR=0.1);
615 
616  DecorativeTorus& setTorusRadius(Real);
617  DecorativeTorus& setTubeRadius(Real);
618  Real getTorusRadius() const;
619  Real getTubeRadius() const;
620 
621  // Retain the derived type when setting generic geometry options.
628  DecorativeTorus& setColor(const Vec3& rgb) { DecorativeGeometry::setColor(rgb); return *this; }
632  {
633  DecorativeGeometry::setRepresentation(r); return *this;
634  }
635 
637 private:
638  class DecorativeTorusRep& updRep();
639  const DecorativeTorusRep& getRep() const;
640 };
641 
642 
655 public:
656  explicit DecorativeArrow(const Vec3& startPoint = Vec3(0), const Vec3& endPoint = Vec3(1), Real tipLength = 0.35); // Arrow
657  const Vec3& getStartPoint() const;
658  const Vec3& getEndPoint() const;
659  const Real& getTipLength() const;
660 
661  DecorativeArrow& setStartPoint(const Vec3& start);
662  DecorativeArrow& setEndPoint(const Vec3& end);
663  DecorativeArrow& setTipLength(Real);
664 
665  // Retain the derived type when setting generic geometry options.
672  DecorativeArrow& setColor(const Vec3& rgb) { DecorativeGeometry::setColor(rgb); return *this; }
676  {
677  DecorativeGeometry::setRepresentation(r); return *this;
678  }
679 
681 private:
682  class DecorativeArrowRep& updRep();
683  const DecorativeArrowRep& getRep() const;
684 };
685 
686 
697 public:
698  explicit DecorativeCone(const Vec3& p1 = Vec3(0), const UnitVec3& dir = UnitVec3(1,1,1),
699  Real height = 1.0, Real baseRadius = 0.5); // Cone
700  const Vec3& getOrigin() const;
701  const UnitVec3& getDirection() const;
702  const Real& getHeight() const;
703  const Real& getBaseRadius() const;
704 
705  DecorativeCone& setOrigin(const Vec3& origin);
706  DecorativeCone& setDirection(const UnitVec3& direction);
707  DecorativeCone& setHeight(Real length);
708  DecorativeCone& setBaseRadius(Real base);
709 
710  // Retain the derived type when setting generic geometry options.
717  DecorativeCone& setColor(const Vec3& rgb) { DecorativeGeometry::setColor(rgb); return *this; }
721  {
722  DecorativeGeometry::setRepresentation(r); return *this;
723  }
724 
726 private:
727  class DecorativeConeRep& updRep();
728  const DecorativeConeRep& getRep() const;
729 };
730 
741 public:
743  Decorations();
746  explicit Decorations(const DecorativeGeometry& decoration);
748  Decorations& addDecoration(const DecorativeGeometry& decoration);
751  Decorations& addDecoration(const Transform& placement,
752  const DecorativeGeometry& decoration);
755  int getNumDecorations() const;
758  const DecorativeGeometry& getDecoration(int i) const;
759 
760  // Retain the derived type when setting generic geometry options.
767  Decorations& setColor(const Vec3& rgb) {DecorativeGeometry::setColor(rgb); return *this;}
771  { DecorativeGeometry::setRepresentation(r); return *this; }
772 
773 
775 private:
776  class DecorationsRep& updRep();
777  const DecorationsRep& getRep() const;
778 };
779 
783 public:
785  virtual void implementPointGeometry( const DecorativePoint&) = 0;
786  virtual void implementLineGeometry( const DecorativeLine&) = 0;
787  virtual void implementBrickGeometry( const DecorativeBrick&) = 0;
788  virtual void implementCylinderGeometry( const DecorativeCylinder&) = 0;
789  virtual void implementCircleGeometry( const DecorativeCircle&) = 0;
790  virtual void implementSphereGeometry( const DecorativeSphere&) = 0;
791  virtual void implementEllipsoidGeometry(const DecorativeEllipsoid&)= 0;
792  virtual void implementFrameGeometry( const DecorativeFrame&) = 0;
793  virtual void implementTextGeometry( const DecorativeText&) = 0;
794  virtual void implementMeshGeometry( const DecorativeMesh&) = 0;
795  virtual void implementMeshFileGeometry( const DecorativeMeshFile&) = 0;
796  virtual void implementTorusGeometry( const DecorativeTorus&) = 0;
797  virtual void implementArrowGeometry( const DecorativeArrow&) = 0;
798  virtual void implementConeGeometry( const DecorativeCone&) = 0;
799 };
800 
801 } // namespace SimTK
802 
803 #endif // SimTK_SimTKCOMMON_DECORATIVE_GEOMETRY_H_
SimTK::White
const Vec3 White
RGB=( 1, 1, 1)
SimTK::DecorativePoint::setBodyId
DecorativePoint & setBodyId(int b)
Definition: DecorativeGeometry.h:279
SimTK::DecorativeGeometry::setColor
DecorativeGeometry & setColor(const Vec3 &rgb)
Request a specific color for this DecorativeGeometry object.
SimTK::DecorativeEllipsoid::setUserRef
DecorativeEllipsoid & setUserRef(void *p)
Definition: DecorativeGeometry.h:407
SimTK::Gray
const Vec3 Gray
RGB=(.5,.5,.5)
SimTK::DecorativeFrame::setTransform
DecorativeFrame & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:497
SimTK::DecorativeArrow::setColor
DecorativeArrow & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:672
SimTK::DecorativeArrow::setScaleFactors
DecorativeArrow & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:671
SimTK::Decorations::setUserRef
Decorations & setUserRef(void *p)
Definition: DecorativeGeometry.h:763
SimTK::DecorativeGeometry::hasRep
bool hasRep() const
Definition: DecorativeGeometry.h:257
SimTK::DecorativeText::setRepresentation
DecorativeText & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:537
SimTK::DecorativeCone::setRepresentation
DecorativeCone & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:720
SimTK::DecorativeFrame::setOpacity
DecorativeFrame & setOpacity(Real o)
Definition: DecorativeGeometry.h:501
SimTK::Decorations::setTransform
Decorations & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:764
SimTK::DecorativeCircle
This defines a circle in the x-y plane, centered at the origin.
Definition: DecorativeGeometry.h:339
SimTK::DecorativeMeshFile::setBodyId
DecorativeMeshFile & setBodyId(int b)
Definition: DecorativeGeometry.h:588
SimTK::DecorativeCone::setResolution
DecorativeCone & setResolution(Real r)
Definition: DecorativeGeometry.h:715
SimTK::DecorativeGeometry::rep
DecorativeGeometryRep * rep
Definition: DecorativeGeometry.h:261
SimTK::DecorativeMeshFile::setIndexOnBody
DecorativeMeshFile & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:589
SimTK::DecorativeArrow::setBodyId
DecorativeArrow & setBodyId(int b)
Definition: DecorativeGeometry.h:666
SimTK::DecorativeMeshFile::setOpacity
DecorativeMeshFile & setOpacity(Real o)
Definition: DecorativeGeometry.h:595
SimTK::DecorativeArrow::setIndexOnBody
DecorativeArrow & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:667
SimTK::DecorativeMesh::setOpacity
DecorativeMesh & setOpacity(Real o)
Definition: DecorativeGeometry.h:562
SimTK::DecorativeCircle::setTransform
DecorativeCircle & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:350
SimTK::DecorativeFrame::setBodyId
DecorativeFrame & setBodyId(int b)
Definition: DecorativeGeometry.h:494
SimTK::DecorativeCylinder::setColor
DecorativeCylinder & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:471
SimTK::DecorativeSphere
This defines a sphere centered at the origin.
Definition: DecorativeGeometry.h:367
SimTK::DecorativeFrame::setResolution
DecorativeFrame & setResolution(Real r)
Definition: DecorativeGeometry.h:498
SimTK::DecorativeSphere::setResolution
DecorativeSphere & setResolution(Real r)
Definition: DecorativeGeometry.h:379
SimTK::DecorativeLine::setScaleFactors
DecorativeLine & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:321
SimTK::DecorativeMeshFile::setColor
DecorativeMeshFile & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:594
SimTK::DecorativeBrick::setTransform
DecorativeBrick & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:437
SimTK::DecorativeCircle::setScaleFactors
DecorativeCircle & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:352
SimTK::DecorativeTorus::setScaleFactors
DecorativeTorus & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:627
SimTK::DecorativeGeometry::setFaceCamera
DecorativeGeometry & setFaceCamera(int shouldFace)
Set whether the geometry acts as a billboard, always rotating to face the camera.
SimTK::DecorativeCone::setUserRef
DecorativeCone & setUserRef(void *p)
Definition: DecorativeGeometry.h:713
SimTK::DecorativeGeometry::setBodyId
DecorativeGeometry & setBodyId(int bodyId)
By default the geometry should be placed relative to the Ground frame.
SimTK::DecorativeMesh::setIndexOnBody
DecorativeMesh & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:556
SimTK::DecorativeCone::setOpacity
DecorativeCone & setOpacity(Real o)
Definition: DecorativeGeometry.h:718
SimTK::DecorativeCone
A cone with origin point, direction, height and base radius.
Definition: DecorativeGeometry.h:696
SimTK::DecorativeText::setBodyId
DecorativeText & setBodyId(int b)
Definition: DecorativeGeometry.h:527
SimTK::DecorativeTorus::setColor
DecorativeTorus & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:628
SimTK::DecorativeSphere::setIndexOnBody
DecorativeSphere & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:376
SimTK::DecorativePoint::setUserRef
DecorativePoint & setUserRef(void *p)
Definition: DecorativeGeometry.h:281
SimTK::DecorativeEllipsoid::setResolution
DecorativeEllipsoid & setResolution(Real r)
Definition: DecorativeGeometry.h:409
SimTK::DecorativePoint::setTransform
DecorativePoint & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:282
SimTK::DecorativeMesh::setResolution
DecorativeMesh & setResolution(Real r)
Definition: DecorativeGeometry.h:559
SimTK::DecorativePoint::setResolution
DecorativePoint & setResolution(Real r)
Definition: DecorativeGeometry.h:283
SimTK::DecorativeFrame
This defines geometry to represent a coordinate frame.
Definition: DecorativeGeometry.h:486
SimTK::DecorativeCircle::setRepresentation
DecorativeCircle & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:356
SimTK::DecorativeArrow::setResolution
DecorativeArrow & setResolution(Real r)
Definition: DecorativeGeometry.h:670
SimTK
This is a System that represents the dynamics of a particle moving along a smooth surface.
Definition: Assembler.h:37
SimTK::DecorativeCircle::setBodyId
DecorativeCircle & setBodyId(int b)
Definition: DecorativeGeometry.h:347
SimTK::DecorativeMesh::setUserRef
DecorativeMesh & setUserRef(void *p)
Definition: DecorativeGeometry.h:557
SimTK::DecorativeArrow::setOpacity
DecorativeArrow & setOpacity(Real o)
Definition: DecorativeGeometry.h:673
SimTK::DecorativeBrick::setLineThickness
DecorativeBrick & setLineThickness(Real t)
Definition: DecorativeGeometry.h:442
Simmatrix.h
SimTK::DecorativeCylinder::setIndexOnBody
DecorativeCylinder & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:466
SimTK::DecorativeSphere::setColor
DecorativeSphere & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:381
SimTK::DecorativeTorus::setUserRef
DecorativeTorus & setUserRef(void *p)
Definition: DecorativeGeometry.h:624
SimTK::DecorativeCylinder::setResolution
DecorativeCylinder & setResolution(Real r)
Definition: DecorativeGeometry.h:469
SimTK::DecorativeTorus::setRepresentation
DecorativeTorus & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:631
SimTK::DecorativeTorus
This defines a displayable torus, the torus is centered at the origin with the axial direction aligne...
Definition: DecorativeGeometry.h:612
SimTK::DecorativeCylinder::setRepresentation
DecorativeCylinder & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:474
SimTK::DecorativeCylinder::setTransform
DecorativeCylinder & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:468
SimTK::DecorativeText::setUserRef
DecorativeText & setUserRef(void *p)
Definition: DecorativeGeometry.h:529
SimTK::DecorativeBrick
This defines a rectangular solid centered at the origin and aligned with the local frame axes.
Definition: DecorativeGeometry.h:426
SimTK::DecorativePoint::setOpacity
DecorativePoint & setOpacity(Real o)
Definition: DecorativeGeometry.h:286
SimTK::DecorativeEllipsoid::setScaleFactors
DecorativeEllipsoid & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:410
SimTK::DecorativeSphere::setBodyId
DecorativeSphere & setBodyId(int b)
Definition: DecorativeGeometry.h:375
SimTK::DecorativeCircle::setOpacity
DecorativeCircle & setOpacity(Real o)
Definition: DecorativeGeometry.h:354
SimTK::Decorations::setRepresentation
Decorations & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:770
SimTK::DecorativeEllipsoid::setLineThickness
DecorativeEllipsoid & setLineThickness(Real t)
Definition: DecorativeGeometry.h:413
SimTK::DecorativeCone::setLineThickness
DecorativeCone & setLineThickness(Real t)
Definition: DecorativeGeometry.h:719
SimTK::DecorativePoint::setRepresentation
DecorativePoint & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:288
SimTK::DecorativeTorus::setTransform
DecorativeTorus & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:625
SimTK_PIMPL_DOWNCAST
#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
SimTK::DecorativeGeometry::setRepresentation
DecorativeGeometry & setRepresentation(const Representation &)
Request a particular rendering representation of this DecorativeGeometry object.
SimTK::DecorativePoint::setColor
DecorativePoint & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:285
SimTK::UnitVec< Real, 1 >
SimTK::DecorativeGeometry::DecorativeGeometry
DecorativeGeometry()
Default constructor creates an empty handle.
Definition: DecorativeGeometry.h:89
SimTK::Decorations::setIndexOnBody
Decorations & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:762
SimTK::DecorativeArrow
An arrow with start point, end point and tip-length.
Definition: DecorativeGeometry.h:654
SimTK::DecorativeMeshFile::setResolution
DecorativeMeshFile & setResolution(Real r)
Definition: DecorativeGeometry.h:592
SimTK::DecorativeMesh::setRepresentation
DecorativeMesh & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:564
SimTK::DecorativeTorus::setResolution
DecorativeTorus & setResolution(Real r)
Definition: DecorativeGeometry.h:626
SimTK::DecorativeTorus::setLineThickness
DecorativeTorus & setLineThickness(Real t)
Definition: DecorativeGeometry.h:630
SimTK::DecorativeBrick::setRepresentation
DecorativeBrick & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:443
SimTK::DecorativeEllipsoid::setIndexOnBody
DecorativeEllipsoid & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:406
SimTK::Vec< 3 >
SimTK::DecorativeFrame::setIndexOnBody
DecorativeFrame & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:495
SimTK::DecorativeCircle::setLineThickness
DecorativeCircle & setLineThickness(Real t)
Definition: DecorativeGeometry.h:355
SimTK::DecorativeCylinder::setBodyId
DecorativeCylinder & setBodyId(int b)
Definition: DecorativeGeometry.h:465
SimTK::DecorativeArrow::setLineThickness
DecorativeArrow & setLineThickness(Real t)
Definition: DecorativeGeometry.h:674
SimTK::DecorativeTorus::setBodyId
DecorativeTorus & setBodyId(int b)
Definition: DecorativeGeometry.h:622
SimTK_SimTKCOMMON_EXPORT
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
SimTK::DecorativeFrame::setRepresentation
DecorativeFrame & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:503
SimTK::Decorations::setColor
Decorations & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:767
SimTK::Decorations
This defines a single DecorativeGeometry object that is composed of a collection of other DecorativeG...
Definition: DecorativeGeometry.h:740
SimTK::DecorativeBrick::setColor
DecorativeBrick & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:440
SimTK::Decorations::setResolution
Decorations & setResolution(Real r)
Definition: DecorativeGeometry.h:765
SimTK::DecorativeGeometry::Representation
Representation
Drawing modes.
Definition: DecorativeGeometry.h:99
SimTK::DecorativeSphere::setOpacity
DecorativeSphere & setOpacity(Real o)
Definition: DecorativeGeometry.h:382
SimTK::DecorativeSphere::setLineThickness
DecorativeSphere & setLineThickness(Real t)
Definition: DecorativeGeometry.h:383
SimTK::DecorativeSphere::setScaleFactors
DecorativeSphere & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:380
SimTK::DecorativeGeometry::setLineThickness
DecorativeGeometry & setLineThickness(Real)
Request an adjustment to the default rendering of lines and curves.
SimTK::DecorativeLine::setIndexOnBody
DecorativeLine & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:317
SimTK::DecorativeCircle::setResolution
DecorativeCircle & setResolution(Real r)
Definition: DecorativeGeometry.h:351
SimTK::PolygonalMesh
This class provides a description of a mesh made of polygonal faces (not limited to triangles).
Definition: PolygonalMesh.h:70
SimTK::DecorativeGeometry::setOpacity
DecorativeGeometry & setOpacity(Real)
Request a level of transparency for this DecorativeGeometry.
SimTK::DecorativeBrick::setOpacity
DecorativeBrick & setOpacity(Real o)
Definition: DecorativeGeometry.h:441
SimTK::DecorativeMeshFile::setRepresentation
DecorativeMeshFile & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:597
SimTK::DecorativeMeshFile::setLineThickness
DecorativeMeshFile & setLineThickness(Real t)
Definition: DecorativeGeometry.h:596
SimTK::Yellow
const Vec3 Yellow
RGB=( 1, 1, 0)
SimTK::DecorativeBrick::setResolution
DecorativeBrick & setResolution(Real r)
Definition: DecorativeGeometry.h:438
SimTK::DecorativeGeometry::setIndexOnBody
DecorativeGeometry & setIndexOnBody(int index)
For selection or other purposes, you may want to use this method to store an index that can identify ...
SimTK::DecorativeEllipsoid::setColor
DecorativeEllipsoid & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:411
SimTK::DecorativeLine::setBodyId
DecorativeLine & setBodyId(int b)
Definition: DecorativeGeometry.h:316
SimTK::DecorativeLine
A line between two points.
Definition: DecorativeGeometry.h:306
SimTK::DecorativeFrame::setLineThickness
DecorativeFrame & setLineThickness(Real t)
Definition: DecorativeGeometry.h:502
SimTK::Decorations::setOpacity
Decorations & setOpacity(Real o)
Definition: DecorativeGeometry.h:768
SimTK::DecorativeCylinder::setLineThickness
DecorativeCylinder & setLineThickness(Real t)
Definition: DecorativeGeometry.h:473
SimTK::Decorations::setBodyId
Decorations & setBodyId(int b)
Definition: DecorativeGeometry.h:761
SimTK::DecorativeCone::setBodyId
DecorativeCone & setBodyId(int b)
Definition: DecorativeGeometry.h:711
SimTK::DecorativeBrick::setBodyId
DecorativeBrick & setBodyId(int b)
Definition: DecorativeGeometry.h:434
SimTK::DecorativeMeshFile::setUserRef
DecorativeMeshFile & setUserRef(void *p)
Definition: DecorativeGeometry.h:590
SimTK::DecorativeGeometry::getRep
const DecorativeGeometryRep & getRep() const
Definition: DecorativeGeometry.h:258
SimTK::DecorativeMesh::setLineThickness
DecorativeMesh & setLineThickness(Real t)
Definition: DecorativeGeometry.h:563
SimTK::DecorativeGeometry::DecorativeGeometry
DecorativeGeometry(class DecorativeGeometryRep *r)
Definition: DecorativeGeometry.h:256
SimTK::DecorativeEllipsoid::setTransform
DecorativeEllipsoid & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:408
SimTK::DecorativeMeshFile::setScaleFactors
DecorativeMeshFile & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:593
SimTK::DecorativePoint
A point of interest.
Definition: DecorativeGeometry.h:269
SimTK::DecorativeLine::setRepresentation
DecorativeLine & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:325
SimTK::DecorativeCylinder::setOpacity
DecorativeCylinder & setOpacity(Real o)
Definition: DecorativeGeometry.h:472
SimTK::DecorativeLine::setUserRef
DecorativeLine & setUserRef(void *p)
Definition: DecorativeGeometry.h:318
SimTK::DecorativeGeometry
This is the client-side interface to an implementation-independent representation of "Decorations" su...
Definition: DecorativeGeometry.h:86
SimTK::DecorativeText
This defines a text label with its base at the origin.
Definition: DecorativeGeometry.h:514
SimTK::Magenta
const Vec3 Magenta
RGB=( 1, 0, 1)
SimTK::DecorativeText::setOpacity
DecorativeText & setOpacity(Real o)
Definition: DecorativeGeometry.h:534
SimTK::DecorativeFrame::setUserRef
DecorativeFrame & setUserRef(void *p)
Definition: DecorativeGeometry.h:496
SimTK::UnitVec3
UnitVec< Real, 1 > UnitVec3
Definition: UnitVec.h:41
SimTK::Black
const Vec3 Black
RGB=( 0, 0, 0)
SimTK::DecorativeText::setColor
DecorativeText & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:533
SimTK::DecorativeLine::setLineThickness
DecorativeLine & setLineThickness(Real t)
Definition: DecorativeGeometry.h:324
SimTK::DecorativeMeshFile::setTransform
DecorativeMeshFile & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:591
SimTK::DecorativeMesh
This defines a displayable mesh by referencing an already-existing PolygonalMesh object.
Definition: DecorativeGeometry.h:549
SimTK::DecorativeSphere::setTransform
DecorativeSphere & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:378
SimTK::DecorativeGeometry::setScale
DecorativeGeometry & setScale(Real scale)
Convenience method to set all three scale factors to the same value.
Definition: DecorativeGeometry.h:171
SimTK::DecorativeText::setIndexOnBody
DecorativeText & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:528
SimTK::Blue
const Vec3 Blue
RGB=( 0, 0, 1)
SimTK::DecorativeSphere::setUserRef
DecorativeSphere & setUserRef(void *p)
Definition: DecorativeGeometry.h:377
SimTK::DecorativeCircle::setIndexOnBody
DecorativeCircle & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:348
SimTK::DecorativeText::setResolution
DecorativeText & setResolution(Real r)
Definition: DecorativeGeometry.h:531
SimTK::DecorativeCone::setTransform
DecorativeCone & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:714
SimTK::DecorativeBrick::setUserRef
DecorativeBrick & setUserRef(void *p)
Definition: DecorativeGeometry.h:436
SimTK::DecorativeFrame::setScaleFactors
DecorativeFrame & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:499
SimTK::DecorativeEllipsoid
This defines an ellipsoidal solid centered at the origin and aligned with the local frame axes.
Definition: DecorativeGeometry.h:396
SimTK::DecorativePoint::setScaleFactors
DecorativePoint & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:284
SimTK::Real
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
SimTK::DecorativeArrow::setTransform
DecorativeArrow & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:669
SimTK::DecorativeLine::setResolution
DecorativeLine & setResolution(Real r)
Definition: DecorativeGeometry.h:320
SimTK::DecorativeLine::setOpacity
DecorativeLine & setOpacity(Real o)
Definition: DecorativeGeometry.h:323
SimTK::DecorativePoint::setIndexOnBody
DecorativePoint & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:280
SimTK::DecorativeGeometryImplementation
Use this abstract class to connect your implementation of decorative geometry to the implementation-i...
Definition: DecorativeGeometry.h:782
SimTK::DecorativeGeometry::setUserRef
DecorativeGeometry & setUserRef(void *userRef)
Use this method to store an arbitrary reference pointer with this DecorativeGeometry object.
SimTK::DecorativeGeometryImplementation::~DecorativeGeometryImplementation
virtual ~DecorativeGeometryImplementation()
Definition: DecorativeGeometry.h:784
PolygonalMesh.h
SimTK::DecorativeEllipsoid::setRepresentation
DecorativeEllipsoid & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:414
SimTK::DecorativeLine::setTransform
DecorativeLine & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:319
SimTK::DecorativeArrow::setUserRef
DecorativeArrow & setUserRef(void *p)
Definition: DecorativeGeometry.h:668
SimTK::DecorativeBrick::setIndexOnBody
DecorativeBrick & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:435
SimTK::Vec3
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
SimTK::DecorativeFrame::setColor
DecorativeFrame & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:500
SimTK::DecorativeBrick::setScaleFactors
DecorativeBrick & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:439
SimTK::DecorativeMeshFile
This defines a displayable mesh by referencing a file name containing the mesh.
Definition: DecorativeGeometry.h:579
SimTK::DecorativeGeometry::setResolution
DecorativeGeometry & setResolution(Real)
Each concrete DecorativeGeometry object is expected to have a default resolution that gets the point ...
SimTK::DecorativeCone::setScaleFactors
DecorativeCone & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:716
SimTK::DecorativeGeometry::setScaleFactors
DecorativeGeometry & setScaleFactors(const Vec3 &scale)
Each concrete DecorativeGeometry object is expected to have a default size around "1",...
SimTK::DecorativeCircle::setUserRef
DecorativeCircle & setUserRef(void *p)
Definition: DecorativeGeometry.h:349
SimTK::DecorativeCylinder::setScaleFactors
DecorativeCylinder & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:470
SimTK::DecorativePoint::setLineThickness
DecorativePoint & setLineThickness(Real t)
Definition: DecorativeGeometry.h:287
SimTK::DecorativeMesh::setScaleFactors
DecorativeMesh & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:560
SimTK::DecorativeCylinder::setUserRef
DecorativeCylinder & setUserRef(void *p)
Definition: DecorativeGeometry.h:467
SimTK::Purple
const Vec3 Purple
RGB=(.5, 0,.5)
SimTK::DecorativeText::setScaleFactors
DecorativeText & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:532
SimTK::DecorativeMesh::setTransform
DecorativeMesh & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:558
SimTK::DecorativeCone::setColor
DecorativeCone & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:717
SimTK::Cyan
const Vec3 Cyan
RGB=( 0, 1, 1)
SimTK::DecorativeGeometry::setTransform
DecorativeGeometry & setTransform(const Transform &X_BG)
This transform shifts the generated polygons with respect to this object's local frame.
SimTK::DecorativeText::setTransform
DecorativeText & setTransform(const Transform &X_BD)
Definition: DecorativeGeometry.h:530
SimTK::Transform_< Real >
SimTK::DecorativeCylinder
This defines a cylinder centered on the origin and aligned in the y direction.
Definition: DecorativeGeometry.h:455
SimTK::DecorativeEllipsoid::setOpacity
DecorativeEllipsoid & setOpacity(Real o)
Definition: DecorativeGeometry.h:412
SimTK::Decorations::setLineThickness
Decorations & setLineThickness(Real t)
Definition: DecorativeGeometry.h:769
SimTK::DecorativeText::setLineThickness
DecorativeText & setLineThickness(Real t)
Definition: DecorativeGeometry.h:535
SimTK::DecorativeText::setFaceCamera
DecorativeText & setFaceCamera(int yn)
Definition: DecorativeGeometry.h:536
SimTK::DecorativeSphere::setRepresentation
DecorativeSphere & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:384
SimTK::DecorativeEllipsoid::setBodyId
DecorativeEllipsoid & setBodyId(int b)
Definition: DecorativeGeometry.h:405
SimTK::DecorativeArrow::setRepresentation
DecorativeArrow & setRepresentation(const Representation &r)
Definition: DecorativeGeometry.h:675
SimTK::DecorativeGeometry::updRep
DecorativeGeometryRep & updRep()
Definition: DecorativeGeometry.h:259
SimTK::DecorativeTorus::setOpacity
DecorativeTorus & setOpacity(Real o)
Definition: DecorativeGeometry.h:629
SimTK::DecorativeLine::setColor
DecorativeLine & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:322
SimTK::Green
const Vec3 Green
RGB=( 0, 1, 0)
SimTK::DecorativeMesh::setColor
DecorativeMesh & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:561
SimTK::DecorativeCone::setIndexOnBody
DecorativeCone & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:712
SimTK::DecorativeCircle::setColor
DecorativeCircle & setColor(const Vec3 &rgb)
Definition: DecorativeGeometry.h:353
SimTK::DecorativeTorus::setIndexOnBody
DecorativeTorus & setIndexOnBody(int x)
Definition: DecorativeGeometry.h:623
SimTK::Red
const Vec3 Red
RGB=( 1, 0, 0)
SimTK::Orange
const Vec3 Orange
RGB=( 1,.5, 0)
SimTK::DecorativeMesh::setBodyId
DecorativeMesh & setBodyId(int b)
Definition: DecorativeGeometry.h:555
SimTK::Decorations::setScaleFactors
Decorations & setScaleFactors(const Vec3 &s)
Definition: DecorativeGeometry.h:766