Skip to content

Commit

Permalink
Adjust initial scales of vectors' radius & length
Browse files Browse the repository at this point in the history
  • Loading branch information
anotheruserofgithub committed Sep 25, 2022
1 parent 8739e8e commit 364b2cd
Show file tree
Hide file tree
Showing 5 changed files with 413 additions and 3 deletions.
2 changes: 2 additions & 0 deletions OMEdit/OMEditLIB/Animation/AbstractAnimationWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,8 @@ bool AbstractAnimationWindow::loadVisualization()
mpVisualization->initVisualization();
//add scene for the chosen visualization
mpViewerWidget->getSceneView()->setSceneData(mpVisualization->getOMVisScene()->getScene().getRootNode().get());
//choose suitable scales for the vector visualizers so that they fit well in the scene
mpVisualization->chooseVectorScales(mpViewerWidget->getSceneView(), mpViewerWidget->getFrameMutex(), std::bind(&ViewerWidget::frame, mpViewerWidget));
}
//add window title
setWindowTitle(QString::fromStdString(mFileName));
Expand Down
6 changes: 6 additions & 0 deletions OMEdit/OMEditLIB/Animation/Vector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@

#include "Vector.h"

VectorQuantity& operator++(VectorQuantity& quantity)
{
quantity = static_cast<VectorQuantity>(static_cast<int>(quantity) + 1);
return quantity;
}

std::ostream& operator<<(std::ostream& os, const VectorQuantity quantity)
{
switch (quantity)
Expand Down
8 changes: 5 additions & 3 deletions OMEdit/OMEditLIB/Animation/Vector.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@
#include <limits>

/*! Equivalent to Modelica.Mechanics.MultiBody.Types.VectorQuantity */
enum class VectorQuantity {force = 1, torque, velocity, acceleration, angularVelocity, angularAcceleration, relativePosition};
enum class VectorQuantity {force = 1, torque, velocity, acceleration, angularVelocity, angularAcceleration, relativePosition, END, BEGIN = force};

VectorQuantity& operator++(VectorQuantity& quantity);

std::ostream& operator<<(std::ostream& os, const VectorQuantity quantity);

Expand Down Expand Up @@ -72,8 +74,8 @@ class VectorObject : public AbstractVisualizerObject
static constexpr float kRadius = 0.0125; //!< Modelica.Mechanics.MultiBody.World.defaultArrowDiameter / 2 = 1 / 40 / 2 = 0.0125
static constexpr float kHeadLength = 0.1000; //!< Modelica.Mechanics.MultiBody.Types.Defaults.ArrowHeadLengthFraction * (2 * kRadius) = 4 * 0.025 = 0.1000
static constexpr float kHeadRadius = 0.0375; //!< Modelica.Mechanics.MultiBody.Types.Defaults.ArrowHeadWidthFraction * (2 * kRadius) / 2 = 3 * 0.025 / 2 = 0.0375
static constexpr float kScaleForce = 1200; //!< Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque.world.defaultN_to_m = 1200
static constexpr float kScaleTorque = 120; //!< Modelica.Mechanics.MultiBody.Examples.Elementary.ForceAndTorque.world.defaultNm_to_m = 120
static constexpr float kScaleForce = 1000; //!< Modelica.Mechanics.MultiBody.World.defaultN_to_m = 1000
static constexpr float kScaleTorque = 1000; //!< Modelica.Mechanics.MultiBody.World.defaultNm_to_m = 1000
static constexpr char kAutoScaleRenderBinName[] = "RenderBin"; //!< See class RenderBinPrototypeList in osgUtil/RenderBin.cpp
static constexpr int kAutoScaleRenderBinNum = std::numeric_limits<int>::max(); //!< To be rendered last
private:
Expand Down

0 comments on commit 364b2cd

Please sign in to comment.