12 #include <mrpt/core/optional_ref.h>
13 #include <mrpt/math/TBoundingBox.h>
14 #include <mrpt/opengl/COpenGLScene.h>
15 #include <mrpt/opengl/opengl_frwds.h>
16 #include <mrpt/poses/CPose3D.h>
17 #include <mvsim/Shape2p5.h>
18 #include <mvsim/basic_types.h>
39 World* parent,
bool insertCustomVizIntoViz =
true,
bool insertCustomVizIntoPhysical =
true);
53 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
54 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical);
56 World* parent() {
return world_; }
57 const World* parent()
const {
return world_; }
59 void customVisualVisible(
const bool visible);
60 bool customVisualVisible()
const;
64 const std::optional<Shape2p5>&
collisionShape()
const {
return collisionShape_; }
66 void showCollisionShape(
bool show);
68 static void FreeOpenGLResources();
83 std::shared_ptr<mrpt::opengl::CSetOfObjects> glCollision_;
84 int32_t glCustomVisualId_ = -1;
86 const bool insertCustomVizIntoViz_ =
true;
87 const bool insertCustomVizIntoPhysical_ =
true;
89 virtual void internalGuiUpdate(
90 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
91 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical,
92 bool childrenOnly =
false) = 0;
94 void addCustomVisualization(
95 const mrpt::opengl::CRenderizable::Ptr& glModel,
const mrpt::poses::CPose3D& modelPose = {},
96 const float modelScale = 1.0f,
const std::string& modelName =
"group",
97 const std::optional<std::string>& modelURI = std::nullopt,
98 const bool initialShowBoundingBox =
false,
99 const std::optional<double>& scaleOverride = std::nullopt);
101 void setCollisionShape(
const Shape2p5& cs) { collisionShape_ = cs; }
104 std::optional<Shape2p5> collisionShape_;
Definition: JointXMLnode.h:20
Definition: Shape2p5.h:31
Definition: VisualObject.h:36
std::shared_ptr< mrpt::opengl::CSetOfObjects > glCustomVisual_
Definition: VisualObject.h:82
virtual void guiUpdate(const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &viz, const mrpt::optional_ref< mrpt::opengl::COpenGLScene > &physical)
bool parseVisual(const rapidxml::xml_node< char > &rootNode)
Returns true if there is at least one <visual>...</visual> entry.
static double GeometryEpsilon
Definition: VisualObject.h:71
const std::optional< Shape2p5 > & collisionShape() const
Definition: VisualObject.h:64