Ignore:
Timestamp:
2022-06-20T15:27:58+02:00 (23 months ago)
Author:
Adeel Asghar <adeel.asghar@…>
Branches:
maintenance/v1.19
Children:
8ad2c41, a1c9e8bd
Parents:
68fb9c93
git-author:
Mickaël Salamin <96748782+anotheruserofgithub@…> (06/16/22 18:00:55)
git-committer:
Adeel Asghar <adeel.asghar@…> (06/20/22 15:27:58)
Message:

[OMEdit] Implement visualization of Vector

  • Create VectorObject class inheriting AbstractVisualizerObject
  • Read VectorObject attributes from MAT/CSV/FMU files
  • Visualize VectorObject as a composite of three OSG shapes (one cylinder for the shaft, two cones for both heads)
  • Select scale/length/radius constants from MSL default parameters
File:
1 edited

Legend:

Unmodified
Added
Removed
  • OMEdit/OMEditLIB/Animation/VisualizationCSV.cpp

    r68fb9c93 r83f7285  
    155155      mpUpdateVisitor->_visualizer = static_cast<AbstractVisualizerObject*>(&shape);
    156156      //shape.dumpVisualizerAttributes();
     157      //mpOMVisScene->dumpOSGTreeDebug();
     158      child = mpOMVisScene->getScene().getRootNode()->getChild(visualizerIdx);
     159      child->accept(*mpUpdateVisitor);
     160      ++visualizerIdx;
     161    }
     162
     163    for (VectorObject& vector : mpOMVisualBase->_vectors)
     164    {
     165      // Get the values for the scene graph objects
     166      //std::cout<<"vector "<<vector._id <<std::endl;
     167
     168      updateVisualizerAttributeCSV(vector._T[0], time);
     169      updateVisualizerAttributeCSV(vector._T[1], time);
     170      updateVisualizerAttributeCSV(vector._T[2], time);
     171      updateVisualizerAttributeCSV(vector._T[3], time);
     172      updateVisualizerAttributeCSV(vector._T[4], time);
     173      updateVisualizerAttributeCSV(vector._T[5], time);
     174      updateVisualizerAttributeCSV(vector._T[6], time);
     175      updateVisualizerAttributeCSV(vector._T[7], time);
     176      updateVisualizerAttributeCSV(vector._T[8], time);
     177
     178      updateVisualizerAttributeCSV(vector._r[0], time);
     179      updateVisualizerAttributeCSV(vector._r[1], time);
     180      updateVisualizerAttributeCSV(vector._r[2], time);
     181
     182      updateVisualizerAttributeCSV(vector._color[0], time);
     183      updateVisualizerAttributeCSV(vector._color[1], time);
     184      updateVisualizerAttributeCSV(vector._color[2], time);
     185
     186      updateVisualizerAttributeCSV(vector._specCoeff, time);
     187
     188      updateVisualizerAttributeCSV(vector._coords[0], time);
     189      updateVisualizerAttributeCSV(vector._coords[1], time);
     190      updateVisualizerAttributeCSV(vector._coords[2], time);
     191
     192      updateVisualizerAttributeCSV(vector._quantity, time);
     193
     194      updateVisualizerAttributeCSV(vector._headAtOrigin, time);
     195
     196      updateVisualizerAttributeCSV(vector._twoHeadedArrow, time);
     197
     198      rT = rotateModelica2OSG(
     199          osg::Matrix3(vector._T[0].exp, vector._T[1].exp, vector._T[2].exp,
     200                       vector._T[3].exp, vector._T[4].exp, vector._T[5].exp,
     201                       vector._T[6].exp, vector._T[7].exp, vector._T[8].exp),
     202          osg::Vec3f(vector._r[0].exp, vector._r[1].exp, vector._r[2].exp),
     203          osg::Vec3f(vector._coords[0].exp, vector._coords[1].exp, vector._coords[2].exp),
     204          vector.hasHeadAtOrigin() ? -vector.getLength() : vector.getLength());
     205      assemblePokeMatrix(vector._mat, rT._T, rT._r);
     206
     207      // Update the vectors
     208      mpUpdateVisitor->_visualizer = static_cast<AbstractVisualizerObject*>(&vector);
     209      //vector.dumpVisualizerAttributes();
    157210      //mpOMVisScene->dumpOSGTreeDebug();
    158211      child = mpOMVisScene->getScene().getRootNode()->getChild(visualizerIdx);
Note: See TracChangeset for help on using the changeset viewer.