Skip to content

Commit ffce474

Browse files
authored
Allow the user to hide the ellipsoid drawn by EllipsoidJoint::generateDecorations(). (#3445)
1 parent 0a13821 commit ffce474

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

OpenSim/Simulation/SimbodyEngine/EllipsoidJoint.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ void EllipsoidJoint::constructProperties()
8282
setAuthors("Ajay Seth");
8383
SimTK::Vec3 radii(NaN);
8484
constructProperty_radii_x_y_z(radii);
85+
86+
Appearance appearance;
87+
appearance.set_visible(true);
88+
constructProperty_Appearance(appearance);
8589
}
8690

8791
//=============================================================================
@@ -176,6 +180,7 @@ void EllipsoidJoint::generateDecorations
176180
// since this method is called with fixed={true, false}
177181
if (!fixed) return;
178182
// Construct the visible Ellipsoid
183+
if (!get_Appearance().get_visible()) return;
179184
SimTK::DecorativeEllipsoid ellipsoid(get_radii_x_y_z());
180185
const OpenSim::PhysicalFrame& frame = getParentFrame();
181186
ellipsoid.setColor(Vec3(0.0, 1.0, 1.0));

OpenSim/Simulation/SimbodyEngine/EllipsoidJoint.h

+8
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ OpenSim_DECLARE_CONCRETE_OBJECT(EllipsoidJoint, Joint);
7979
Rotation3Z = 2u ///< 2
8080
};
8181

82+
OpenSim_DECLARE_UNNAMED_PROPERTY(Appearance,
83+
"Default appearance attributes for this EllipsoidJoint");
84+
8285
private:
8386
/** Specify the Coordinates of the EllipsoidJoint */
8487
CoordinateIndex rx{ constructCoordinate(Coordinate::MotionType::Rotational,
@@ -120,6 +123,11 @@ OpenSim_DECLARE_CONCRETE_OBJECT(EllipsoidJoint, Joint);
120123
//Set properties
121124
void setEllipsoidRadii(const SimTK::Vec3& radii);
122125

126+
/** Turn on/off the ellipsoid drawn by generateDecorations(). */
127+
void setEllipsoidVisible(bool visible) {
128+
upd_Appearance().set_visible(visible);
129+
};
130+
123131
/** Exposes getCoordinate() method defined in base class (overloaded below).
124132
@see Joint */
125133
using Joint::getCoordinate;

0 commit comments

Comments
 (0)