23#ifndef _MO_MESHCELLSHAPES_
24#define _MO_MESHCELLSHAPES_
39#pragma warning(disable:4251)
45class MdMeshRepresentation;
51class MxDefaultStreamStringSet;
207 static void initClass() ;
208 static void exitClass() ;
211 virtual void doExtract(
SoAction *action);
214 template <MeshType _meshType>
friend class MdLineCellExtract;
218 template<
typename _Tuple> std::vector<_Tuple>& buildIndexList();
220 std::vector<size_t>& buildIndexListI();
221 std::vector<size_t> m_indexListI;
222 std::vector<MiCellExtractIj::couple>& buildIndexListIj();
223 std::vector<MiCellExtractIj::couple> m_indexListIj;
224 std::vector<MiCellExtractIjk::triplet>& buildIndexListIjk();
225 std::vector<MiCellExtractIjk::triplet> m_indexListIjk;
227 template< MeshType _meshType>
235 size_t m_timeStampOfLastCellNames;
236 size_t m_timeStampOfLastNodeNames;
242 DisplayName(std::string name,
const MbVec3d& pos) : m_name(name), m_pos(pos) {}
245 bool operator==(
const DisplayName& c1)
const {
return m_name == c1.m_name && m_pos ==c1.m_pos;}
247 std::vector<DisplayName> m_cellNames;
248 std::vector<DisplayName> m_nodeNames;
250 template <
typename _Iterator,
typename _Topology,
typename _Tuple>
251 void getDisplayCellList(
const _Topology& topology, std::vector<_Tuple>& indexList, std::vector<_Tuple>& cellIds);
257 void displayNames(std::vector<DisplayName>& newDisplayNames, std::vector<DisplayName>& currentDisplayNames,
SoSeparator*& nameSep);
266 bool acceptCell(
size_t cellIndex)
const;
267 bool acceptCell(
size_t i,
size_t j)
const;
268 bool acceptCell(
size_t i,
size_t j,
size_t k)
const;
269 size_t getTimeStamp()
const;
270 void set(std::vector<size_t>& exclusionListI,
const MiCellFilterI* userCellFilter);
271 void set(std::vector<MiCellExtractIj::couple>& exclusionListIj,
const MiCellFilterIj* userCellFilter);
272 void set(std::vector<MiCellExtractIjk::triplet>& exclusionListIjk,
const MiCellFilterIjk* userCellFilter);
274 template <
typename _vectorT >
void copy( _vectorT& exclusionListI, _vectorT& newListI);
275 std::vector<size_t> m_exclusionListI;
276 std::vector<MiCellExtractIj::couple> m_exclusionListIj;
277 std::vector<MiCellExtractIjk::triplet> m_exclusionListIjk;
282 mutable size_t m_userTS;
283 mutable size_t m_timeStamp;
285 CellFilter m_excludedCellFilter;
287 static MxDefaultStreamStringSet* s_streamStringSet;
291inline std::vector<size_t>& MoMeshCellShape::buildIndexList()
293 return buildIndexListI();
297inline std::vector<MiCellExtractIj::couple>& MoMeshCellShape::buildIndexList()
299 return buildIndexListIj();
303inline std::vector<MiCellExtractIjk::triplet>& MoMeshCellShape::buildIndexList()
305 return buildIndexListIjk();
#define MESHVIZXLM_DMAP_API
void set(int32_t numNormals, const SbVec3f *normals, const SoNormalBindingElement::Binding binding, const int startIndex=0)
int operator==(const className &f) const
Returns TRUE if otherField is of the same type and has the same value as this field.
#define SO_NODE_HEADER(className)
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Interface class defining...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Interface class defining...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Interface class defining...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Interface class defining...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic data set interfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic data set interfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic data set interfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Generic geometry interfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract mesh interface.
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> I Unstructured mesh abst...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> List of cells interface.
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> List of structured surfa...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> IJK Hexahedron volume me...
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Rendering node that disp...
const MiCellExtractIj * getIjExtractor()
SoSFBool showNodeName
When set to TRUE, the node's names are displayed near the cell.
SoDEPRECATED const MiCellExtractIjk * getRegularExtractor()
const MiCellExtractUnstructured * getUnstructuredExtractor()
Get extractor for reuse outside this node.
SoSFFloat offset
Field representing the distance to shift the display of node names away from the node coordinates.
const MiCellExtractIjk * getIjkExtractor()
SoSFBool relativeOffset
When set to TRUE, the distance between the node and the name to display is relative to the size of th...
SoSFFloat factor
Field representing the factor to resize extracted cells.
SoMFInt32 cellIndices
Field representing the list of cells given by their index in the mesh.
MoMeshCellShape()
Constructor.
SoSFBool showCellName
When set to TRUE, the cell's name is displayed near the cell.
SoDEPRECATED const MiCellExtractHexahedronIjk * getUnstructuredIjkExtractor()
SoSFBool inclusiveList
When set to TRUE, the cellIndices field will represent the list of cells to display and the list of c...
SoDEPRECATED const MiCellExtractIj * getSurfaceRegularExtractor()
const MiCellExtractHexahedronIjk * getHexahedronIjkExtractor()
<a href="IconLegend.html"><img src="extMV.gif" alt="MeshViz" border="0"></a> Abstract base class for ...
Abstract base class for all actions.
Multiple-value field containing any number of int32_t integers.
Field containing a single Boolean value.
Field containing a floating-point value.
Group node that saves and restores traversal state.