Pointwise Plugin SDK
CaeUnsElement.h
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * CaeUnsElement class
4  *
5  * (C) 2021 Cadence Design Systems, Inc. All rights reserved worldwide.
6  *
7  ***************************************************************************/
8 
9 #if !defined(PWGM_HIDE_UNSTRUCTURED_API)
10 
11 #ifndef _CAEUNSELEMENT_H_
12 #define _CAEUNSELEMENT_H_
13 
14 #include <algorithm>
15 #include <vector>
16 
17 #include "apiGridModel.h"
18 #include "apiPWP.h"
19 #include "CaeUnsElementGroup.h"
20 #include "CaeUnsGridModel.h"
21 
22 
23 //***************************************************************************
24 //***************************************************************************
25 //***************************************************************************
26 
60 public:
61 
64 
66 
74  enum ElementType {
85 
86  NumTypes = PWGM_ELEMTYPE_SIZE,
88  Invalid = NumTypes
89  };
90 
91 
92 public:
93 
95 
100  {
101  eed_.elemData.type = static_cast<PWGM_ENUM_ELEMTYPE>(Invalid);
102  eed_.elemData.vertCnt = 0;
103  static const PWGM_HVERTEX bad = PWGM_HVERTEX_INIT;
104  std::fill(eed_.elemData.vert, eed_.elemData.vert + MaxNumVerts, bad);
105  std::fill(eed_.elemData.index, eed_.elemData.index + MaxNumVerts, 0);
106  PWGM_HELEMENT_SET_INVALID(eed_.hBlkElement);
107  }
108 
109 
112  {
113  eed_ = src.eed_;
114  }
115 
116 
119  {
120  eed_.elemData = ed;
121  PWGM_HELEMENT_SET_INVALID(eed_.hBlkElement);
122  }
123 
124 
127  {
128  }
129 
130 
132  inline ElementType
133  type() const
134  {
135  return static_cast<ElementType>(eed_.elemData.type);
136  }
137 
138 
140  inline PWP_UINT32
141  vertCount() const
142  {
143  return eed_.elemData.vertCnt;
144  }
145 
146 
148  inline PWGM_HVERTEX
149  vertAt(PWP_UINT32 ndx) const
150  {
151  return eed_.elemData.vert[ndx];
152  }
153 
154 
156  inline PWP_UINT32
157  indexAt(PWP_UINT32 ndx) const
158  {
159  return eed_.elemData.index[ndx];
160  }
161 
162 
164  inline bool
166  {
167  return eed_.elemData.type == type;
168  }
169 
170 
172  inline bool
174  {
175  return static_cast<ElementType>(eed_.elemData.type) == type;
176  }
177 
178 
180  inline bool
181  isValid() const
182  {
183  return static_cast<ElementType>(eed_.elemData.type) != Invalid;
184  }
185 
186 
188  inline PWGM_ELEMDATA&
190  {
191  return eed_.elemData;
192  }
193 
194 
196  inline const PWGM_ELEMDATA&
197  elementData() const
198  {
199  return eed_.elemData;
200  }
201 
202 
204  inline CaeUnsElementData&
206  {
207  eed_ = src.eed_;
208  return *this;
209  }
210 
211 
213  inline CaeUnsElementData&
215  {
216  eed_.elemData = ed;
217  PWGM_HELEMENT_SET_INVALID(eed_.hBlkElement);
218  return *this;
219  }
220 
221 
223  inline operator PWGM_ELEMDATA&()
224  {
225  return eed_.elemData;
226  }
227 
228 
230  inline operator const PWGM_ELEMDATA&() const
231  {
232  return eed_.elemData;
233  }
234 
235 
265  template< typename FTOR >
266  void
267  walkPolyhedronFaces(const FTOR &f)
268  {
269  PWGM_POLYELEMDATA ped;
270  if (PwElemDataCastToPoly(&eed_.elemData, &ped)) {
271  walkPolyhedronFaces(ped, f);
272  }
273  }
274 
275 
307  template< typename FTOR >
308  static void
309  walkPolyhedronFaces(const PWGM_POLYELEMDATA &ped, const FTOR &f)
310  {
311  std::vector<PWP_UINT64> globalIndices;
312  for (PWP_UINT64 ii = 0; ii < ped.numFaces; ++ii) {
313  const PWP_UINT64 NumVerts = ped.offsets[ii + 1] - ped.offsets[ii];
314  if (NumVerts < 3) {
315  // BAD - not a tri, quad, or polygon!
316  ASSERT(false);
317  continue;
318  }
319  globalIndices.resize(NumVerts);
320  const PWP_UINT64* loc = &ped.faceIndices[ped.offsets[ii]];
321  for (PWP_UINT64 jj = 0; jj < NumVerts; ++jj) {
322  globalIndices[jj] = ped.indices[loc[jj]];
323  }
324  if (!f(NumVerts, globalIndices.data())) {
325  // f() wants to stop walking
326  break;
327  }
328  }
329  }
330 
331 
332 protected:
333 
336  {
337  eed_.elemData = ed;
338  eed_.hBlkElement = he;
339  }
340 
341 
342 protected:
343 
346 };
347 
348 
349 //***************************************************************************
350 //***************************************************************************
351 //***************************************************************************
352 
389 public:
390 
392 
398  {
399  }
400 
401 
404  CaeUnsElementData(src.eed_.elemData, src.eed_.hBlkElement)
405  {
406  }
407 
408 
411  CaeUnsElementData(eed.elemData, eed.hBlkElement)
412  {
413  }
414 
415 
418  {
419  }
420 
422  inline CaeUnsEnumElementData&
424  {
425  eed_ = src.eed_;
426  return *this;
427  }
428 
429 
431  inline CaeUnsEnumElementData&
433  {
434  eed_ = eed;
435  return *this;
436  }
437 
438 
441  {
442  return eed_;
443  }
444 
445 
447  inline const PWGM_ENUMELEMDATA& enumElementData() const
448  {
449  return eed_;
450  }
451 
452 
455  {
456  return eed_.hBlkElement;
457  }
458 
459 
461  inline const PWGM_HELEMENT& blockElement() const
462  {
463  return eed_.hBlkElement;
464  }
465 
466 
468 
481  inline PWP_UINT32 blockId() const
482  {
484  }
485 
486 
488  inline operator PWGM_ENUMELEMDATA&()
489  {
490  return eed_;
491  }
492 
493 
495  inline operator const PWGM_ENUMELEMDATA&() const
496  {
497  return eed_;
498  }
499 
500 
502  inline operator PWGM_HELEMENT&()
503  {
504  return eed_.hBlkElement;
505  }
506 
507 
509  inline operator const PWGM_HELEMENT&() const
510  {
511  return eed_.hBlkElement;
512  }
513 };
514 
515 
516 //***************************************************************************
517 //***************************************************************************
518 //***************************************************************************
519 
545 public:
546 
548 
554  PWGM_HELEMENT_SET_INVALID(h_);
555  }
556 
558 
565  CaeUnsElement(const CaeUnsElementGroup &group, PWP_UINT32 ndx = 0) :
566  group_(&group) {
567  h_ = group_->enumElements(ndx);
568  }
569 
571 
576  group_ = src.group_;
577  h_ = src.h_;
578  }
579 
581  virtual ~CaeUnsElement() {
582  }
583 
587  }
588 
590 
593  PWP_UINT32 index() const {
594  return PWGM_HELEMENT_ID(h_);
595  }
596 
598 
602  bool data(PWGM_ELEMDATA &data) const {
603  return 0 != PwElemDataMod(h_, &data);
604  }
605 
607 
611  bool data(CaeUnsElementData &data) const {
612  return 0 != PwElemDataMod(h_, &data.elementData());
613  }
614 
616 
620  bool data(PWGM_ENUMELEMDATA &data) const {
621  return 0 != PwElemDataModEnum(h_, &data);
622  }
623 
625 
630  return 0 != PwElemDataModEnum(h_, &data.enumElementData());
631  }
632 
635  bool isValid() const {
636  return PWGM_HELEMENT_ISVALID(h_);
637  }
638 
640 
646  group_ = rhs.group_;
647  h_ = rhs.h_;
648  return *this;
649  }
650 
652 
661  group_ = &group;
662  h_ = group_->enumElements(ndx);
663  return *this;
664  }
665 
667 
675  group_ = &group;
676  h_ = group_->enumElements(0);
677  return *this;
678  }
679 
681 
687  if (0 != group_) {
688  h_ = group_->enumElements(index() + 1);
689  }
690  return *this;
691  }
692 
694 
700  CaeUnsElement& operator++() { // pre incr to next element
701  if (0 != group_) {
702  h_ = group_->enumElements(index() + 1);
703  }
704  return *this;
705  }
706 
708 
713  CaeUnsElement operator++(int) { // post incr to next element
714  CaeUnsElement ret = *this;
715  if (0 != group_) {
716  h_ = group_->enumElements(index() + 1);
717  }
718  return ret;
719  }
720 
722 
727  CaeUnsElement& movePrev() { // move to previous element
728  if (0 != group_) {
729  h_ = group_->enumElements(index() - 1);
730  }
731  return *this;
732  }
733 
735 
741  CaeUnsElement& operator--() { // pre decr to previous element
742  if (0 != group_) {
743  h_ = group_->enumElements(index() - 1);
744  }
745  return *this;
746  }
747 
749 
754  CaeUnsElement operator--(int) { // post decr to previous element
755  CaeUnsElement ret = *this;
756  if (0 != group_) {
757  h_ = group_->enumElements(index() - 1);
758  }
759  return ret;
760  }
761 
763  friend bool operator==(const PWGM_HELEMENT &h1, const PWGM_HELEMENT &h2);
764  friend bool operator<(const PWGM_HELEMENT &h1, const PWGM_HELEMENT &h2);
766 
768 
772  bool operator==(const CaeUnsElement &rhs) const {
773  return (rhs.group_ == group_) && (rhs.h_ == h_);
774  }
775 
777 
781  bool operator!=(const CaeUnsElement &rhs) const {
782  return !(rhs == *this);
783  }
784 
786 
789  bool operator<(const CaeUnsElement &rhs) const {
790  if (rhs.group_ < group_) {
791  return true;
792  }
793  else if (rhs.group_ > group_) {
794  return false;
795  }
796  return h_ < rhs.h_;
797  }
798 
800 
803  bool operator>(const PWGM_HELEMENT &rhs)
804  {
805  return !(*this == rhs) && !(*this < rhs);
806  }
807 
809  operator PWGM_HELEMENT() const {
810  return h_;
811  }
812 
813 private:
814 
817 };
818 
819 #endif // _CAEUNSELEMENT_H_
820 
821 #endif // PWGM_HIDE_UNSTRUCTURED_API
CaeUnsElementData::Hex
@ Hex
3D, 6-sided (block) grid
Definition: CaeUnsElement.h:76
PWGM_HELEMENT
Grid element handle declaration.
Definition: apiGridModel.h:427
PwElemDataModEnum
PWP_BOOL PwElemDataModEnum(PWGM_HELEMENT element, PWGM_ENUMELEMDATA *pEnumElemData)
Get the enumerated element data relative to the model's index space.
Definition: apiGridModel.cxx:386
CaeUnsElement::CaeUnsElement
CaeUnsElement(const CaeUnsElement &src)
Copy constructor.
Definition: CaeUnsElement.h:575
CaeUnsElementData::indexAt
PWP_UINT32 indexAt(PWP_UINT32 ndx) const
Gets the global index of ndx'th vertex.
Definition: CaeUnsElement.h:157
PWGM_ENUMELEMDATA::hBlkElement
PWGM_HELEMENT hBlkElement
The owning block's locally indexed element handle.
Definition: apiGridModel.h:751
CaeUnsElement::operator++
CaeUnsElement operator++(int)
Postfix increment to the next element in an element group.
Definition: CaeUnsElement.h:713
CaeUnsElement::CaeUnsElement
CaeUnsElement(const CaeUnsElementGroup &group, PWP_UINT32 ndx=0)
Group and element index constructor.
Definition: CaeUnsElement.h:565
CaeUnsElement::isValid
bool isValid() const
Determines an element's validity.
Definition: CaeUnsElement.h:635
CaeUnsElementData::ElementType
ElementType
The valid element type id values.
Definition: CaeUnsElement.h:74
CaeUnsElementData::walkPolyhedronFaces
static void walkPolyhedronFaces(const PWGM_POLYELEMDATA &ped, const FTOR &f)
Invokes functor f once for each polygon face of the polyhedron ped.
Definition: CaeUnsElement.h:309
CaeUnsElement::operator<
bool operator<(const CaeUnsElement &rhs) const
Compares the relative order of two CaeUnsElement instances.
Definition: CaeUnsElement.h:789
PWGM_ELEMTYPE_TET
@ PWGM_ELEMTYPE_TET
3D, 4-sided (tetrahedral) grid element
Definition: apiGridModel.h:677
PWP_UINT32
unsigned int PWP_UINT32
32-bit unsigned integer
Definition: apiPWP.h:210
PWGM_ELEMDATA::vertCnt
PWP_UINT32 vertCnt
Number of vertices in the face.
Definition: apiGridModel.h:739
CaeUnsElementData::~CaeUnsElementData
~CaeUnsElementData()
Destructor.
Definition: CaeUnsElement.h:126
PWGM_ELEMDATA_VERT_SIZE
#define PWGM_ELEMDATA_VERT_SIZE
Maximum number of verts allowed per element.
Definition: apiGridModel.h:730
CaeUnsElement::data
bool data(CaeUnsElementData &data) const
Get the element's connectivity data.
Definition: CaeUnsElement.h:611
CaeUnsElement::operator--
CaeUnsElement operator--(int)
Postfix decrement to the previous element in an element group.
Definition: CaeUnsElement.h:754
CaeUnsElementGroup.h
CaeUnsElementData::CaeUnsElementData
CaeUnsElementData(const PWGM_ELEMDATA &ed)
Cast/Copy constructor.
Definition: CaeUnsElement.h:118
CaeUnsElementData::type
ElementType type() const
Gets the element type.
Definition: CaeUnsElement.h:133
PWGM_ENUMELEMDATA::elemData
PWGM_ELEMDATA elemData
Element descriptor data.
Definition: apiGridModel.h:750
CaeUnsElement::operator!=
bool operator!=(const CaeUnsElement &rhs) const
Compares two CaeUnsElement instances for inequality.
Definition: CaeUnsElement.h:781
CaeUnsGridModel
The unstructured grid model class.
Definition: CaeUnsGridModel.h:176
CaeUnsElement::data
bool data(PWGM_ELEMDATA &data) const
Get the element's connectivity data.
Definition: CaeUnsElement.h:602
CaeUnsElementData::LastType
@ LastType
The last element type id.
Definition: CaeUnsElement.h:87
PwElemDataCastToPoly
PWP_BOOL PwElemDataCastToPoly(const PWGM_ELEMDATA *eData, PWGM_POLYELEMDATA *polyData)
Cast a PWGM_ELEMDATA to a PWGM_POLYELEMDATA.
Definition: apiGridModel.cxx:395
CaeUnsElementData::vertCount
PWP_UINT32 vertCount() const
Gets the number of vertices in the element.
Definition: CaeUnsElement.h:141
CaeUnsElementData::Tri
@ Tri
2D, 3-sided grid
Definition: CaeUnsElement.h:78
CaeUnsElementData::operator=
CaeUnsElementData & operator=(const CaeUnsElementData &src)
Assignment operator.
Definition: CaeUnsElement.h:205
CaeUnsEnumElementData::enumElementData
PWGM_ENUMELEMDATA & enumElementData()
Gets a non-const ref to the underlying PWGM_ENUMELEMDATA struct.
Definition: CaeUnsElement.h:440
PWGM_POLYELEMDATA::numFaces
PWP_UINT64 numFaces
Definition: apiGridModel.h:763
CaeUnsElement::data
bool data(PWGM_ENUMELEMDATA &data) const
Get the element's connectivity data.
Definition: CaeUnsElement.h:620
CaeUnsElement::operator--
CaeUnsElement & operator--()
Prefix decrement to the previous element in an element group.
Definition: CaeUnsElement.h:741
CaeUnsElement::model
CaeUnsGridModel model() const
Gets the unstructured grid model of which this element is a member.
Definition: CaeUnsElement.h:585
CaeUnsElement::h_
PWGM_HELEMENT h_
The bound PWGM_HELEMENT.
Definition: CaeUnsElement.h:816
CaeUnsEnumElementData::operator=
CaeUnsEnumElementData & operator=(const PWGM_ENUMELEMDATA &eed)
Assignment operator.
Definition: CaeUnsElement.h:432
PWGM_ELEMDATA::index
PWP_UINT32 index[8]
The vertex indices.
Definition: apiGridModel.h:741
PWGM_ELEMDATA::type
PWGM_ENUM_ELEMTYPE type
One of the PWGM_ELEMTYPE_XXX values.
Definition: apiGridModel.h:738
apiGridModel.h
Pointwise Grid Model API Specification (PWGM-API)
PWGM_ELEMDATA
Element descriptor data type.
Definition: apiGridModel.h:737
CaeUnsElementData::Point
@ Point
0D, point grid
Definition: CaeUnsElement.h:82
CaeUnsElementData::Invalid
@ Invalid
The "invalid" type id.
Definition: CaeUnsElement.h:88
CaeUnsElement::operator==
bool operator==(const CaeUnsElement &rhs) const
Compares two CaeUnsElement instances for equality.
Definition: CaeUnsElement.h:772
PWGM_ELEMTYPE_POLYH
@ PWGM_ELEMTYPE_POLYH
3D, polyhedron
Definition: apiGridModel.h:681
PWGM_ELEMTYPE_TRI
@ PWGM_ELEMTYPE_TRI
2D, 3-sided grid element
Definition: apiGridModel.h:676
CaeUnsElementData::Polygon
@ Polygon
2D, polygon
Definition: CaeUnsElement.h:84
PwElemDataMod
PWP_BOOL PwElemDataMod(PWGM_HELEMENT element, PWGM_ELEMDATA *pElemData)
Get the element data relative to the model's index space.
Definition: apiGridModel.cxx:377
CaeUnsElementData
The unstructured element data class.
Definition: CaeUnsElement.h:59
CaeUnsElementGroup
The unstructured element group class.
Definition: CaeUnsElementGroup.h:44
CaeUnsEnumElementData::~CaeUnsEnumElementData
~CaeUnsEnumElementData()
Destructor.
Definition: CaeUnsElement.h:417
PWGM_ELEMTYPE_POLYG
@ PWGM_ELEMTYPE_POLYG
2D, polygon
Definition: apiGridModel.h:682
CaeUnsElement::operator++
CaeUnsElement & operator++()
Prefix increment to the next element in an element group.
Definition: CaeUnsElement.h:700
PWGM_ELEMTYPE_POINT
@ PWGM_ELEMTYPE_POINT
0D, point grid element
Definition: apiGridModel.h:680
CaeUnsEnumElementData::blockElement
PWGM_HELEMENT & blockElement()
Gets a non-const ref to the owning block's element handle.
Definition: CaeUnsElement.h:454
PWGM_ELEMTYPE_PYRAMID
@ PWGM_ELEMTYPE_PYRAMID
3D, 5-sided, quad-based grid element
Definition: apiGridModel.h:679
CaeUnsElement::moveTo
CaeUnsElement & moveTo(const CaeUnsElementGroup &group, PWP_UINT32 ndx)
Rebinds an instance to a specific model element.
Definition: CaeUnsElement.h:660
PWGM_POLYELEMDATA::faceIndices
const PWP_UINT64 * faceIndices
Definition: apiGridModel.h:766
CaeUnsElementData::CaeUnsElementData
CaeUnsElementData(const CaeUnsElementData &src)
Copy constructor.
Definition: CaeUnsElement.h:111
CaeUnsElementData::walkPolyhedronFaces
void walkPolyhedronFaces(const FTOR &f)
If element is a polyhedron, functor f is invoked once for each face of the element....
Definition: CaeUnsElement.h:267
PWGM_ELEMTYPE_BAR
@ PWGM_ELEMTYPE_BAR
1D, linear grid element
Definition: apiGridModel.h:673
CaeUnsElement::moveFirst
CaeUnsElement & moveFirst(const CaeUnsElementGroup &group)
Rebinds an instance to the first element in an element group.
Definition: CaeUnsElement.h:674
CaeUnsElementData::eed_
PWGM_ENUMELEMDATA eed_
The element data.
Definition: CaeUnsElement.h:345
CaeUnsEnumElementData
The model unstructured element data class.
Definition: CaeUnsElement.h:388
PWGM_ENUM_ELEMTYPE
PWGM_ENUM_ELEMTYPE
Element type ids.
Definition: apiGridModel.h:672
PWGM_HELEMENT_ID
#define PWGM_HELEMENT_ID(h)
gets the element's guid from the handle
Definition: apiGridModel.h:450
CaeUnsElementData::Quad
@ Quad
2D, 4-sided grid
Definition: CaeUnsElement.h:77
CaeUnsElementData::Tet
@ Tet
3D, 4-sided (tetrahedral) grid
Definition: CaeUnsElement.h:79
CaeUnsElementData::vertAt
PWGM_HVERTEX vertAt(PWP_UINT32 ndx) const
Gets the handle of ndx'th vertex.
Definition: CaeUnsElement.h:149
CaeUnsElement::CaeUnsElement
CaeUnsElement()
Default constructor.
Definition: CaeUnsElement.h:553
CaeUnsElement
The unstructured element class.
Definition: CaeUnsElement.h:544
CaeUnsElementData::elementData
const PWGM_ELEMDATA & elementData() const
Gets a const ref to the underlying PWGM_ELEMDATA struct.
Definition: CaeUnsElement.h:197
PWGM_ELEMTYPE_WEDGE
@ PWGM_ELEMTYPE_WEDGE
3D, extruded, tri/quad grid element
Definition: apiGridModel.h:678
CaeUnsElementData::elementData
PWGM_ELEMDATA & elementData()
Gets a non-const ref to the underlying PWGM_ELEMDATA struct.
Definition: CaeUnsElement.h:189
CaeUnsElementData::NumTypes
@ NumTypes
The number of defined element types.
Definition: CaeUnsElement.h:86
CaeUnsElementData::MaxNumVerts
static const PWP_UINT32 MaxNumVerts
The maximum number of vertices per element.
Definition: CaeUnsElement.h:63
CaeUnsElementGroup::enumElements
PWGM_HELEMENT enumElements(PWP_UINT32 ndx) const
Get an element in the group.
Definition: CaeUnsElementGroup.h:70
CaeUnsEnumElementData::CaeUnsEnumElementData
CaeUnsEnumElementData()
Default constructor.
Definition: CaeUnsElement.h:396
PWGM_POLYELEMDATA::indices
const PWP_UINT64 * indices
Definition: apiGridModel.h:762
CaeUnsElementData::isOfType
bool isOfType(PWGM_ENUM_ELEMTYPE type) const
Returns true if element is of the specified PWGM_ENUM_ELEMTYPE.
Definition: CaeUnsElement.h:165
CaeUnsElementData::isOfType
bool isOfType(ElementType type) const
Returns true if element is of the specified ElementType.
Definition: CaeUnsElement.h:173
CaeUnsEnumElementData::enumElementData
const PWGM_ENUMELEMDATA & enumElementData() const
Gets a const ref to the underlying PWGM_ENUMELEMDATA struct.
Definition: CaeUnsElement.h:447
CaeUnsEnumElementData::operator=
CaeUnsEnumElementData & operator=(const CaeUnsEnumElementData &src)
Assignment operator.
Definition: CaeUnsElement.h:423
PWGM_ELEMDATA::vert
PWGM_HVERTEX vert[8]
The vertex handles.
Definition: apiGridModel.h:740
CaeUnsElementData::isValid
bool isValid() const
Returns true if element type is not Invalid.
Definition: CaeUnsElement.h:181
CaeUnsElementData::Polyhedron
@ Polyhedron
3D, polyhedron
Definition: CaeUnsElement.h:83
CaeUnsElement::operator=
CaeUnsElement & operator=(const CaeUnsElement &rhs)
Assignment operator.
Definition: CaeUnsElement.h:645
CaeUnsElement::group_
const CaeUnsElementGroup * group_
The owning element group.
Definition: CaeUnsElement.h:815
CaeUnsElementData::CaeUnsElementData
CaeUnsElementData()
Default constructor.
Definition: CaeUnsElement.h:99
CaeUnsEnumElementData::blockId
PWP_UINT32 blockId() const
Gets the id (index) of the element's owning block.
Definition: CaeUnsElement.h:481
CaeUnsElementData::Bar
@ Bar
1D, linear grid
Definition: CaeUnsElement.h:75
CaeUnsElementData::CaeUnsElementData
CaeUnsElementData(const PWGM_ELEMDATA &ed, const PWGM_HELEMENT &he)
Protected constructor used by the CaeUnsEnumElementData subclass.
Definition: CaeUnsElement.h:335
CaeUnsEnumElementData::CaeUnsEnumElementData
CaeUnsEnumElementData(const CaeUnsEnumElementData &src)
Copy constructor.
Definition: CaeUnsElement.h:403
CaeUnsGridModel.h
CaeUnsElement::movePrev
CaeUnsElement & movePrev()
Rebinds an instance to the previous element in an element group.
Definition: CaeUnsElement.h:727
CaeUnsElement::data
bool data(CaeUnsEnumElementData &data) const
Get the element's connectivity data.
Definition: CaeUnsElement.h:629
CaeUnsEnumElementData::blockElement
const PWGM_HELEMENT & blockElement() const
Gets a const ref to the owning block's element handle.
Definition: CaeUnsElement.h:461
CaeUnsElement::~CaeUnsElement
virtual ~CaeUnsElement()
Destructor.
Definition: CaeUnsElement.h:581
CaeUnsEnumElementData::CaeUnsEnumElementData
CaeUnsEnumElementData(const PWGM_ENUMELEMDATA &eed)
Cast/Copy constructor.
Definition: CaeUnsElement.h:410
CaeUnsElementData::Wedge
@ Wedge
3D, extruded, tri/quad grid
Definition: CaeUnsElement.h:80
PWGM_HVERTEX
An opaque handle to a grid vertex element.
Definition: apiGridModel.h:398
PWGM_HELEMENT_PID
#define PWGM_HELEMENT_PID(h)
gets the element's parent id
Definition: apiGridModel.h:446
apiPWP.h
Pointwise Plugin API (PWP-API)
PWGM_POLYELEMDATA
Polygon or polyhedron element descriptor data type.
Definition: apiGridModel.h:759
PWGM_HELEMENT_MODEL
#define PWGM_HELEMENT_MODEL(h)
gets the element's PWGM_HGRIDMODEL handle
Definition: apiGridModel.h:452
ASSERT
#define ASSERT(expr)
Run time assert macro.
Definition: apiUtils.h:192
PWP_UINT64
unsigned long long PWP_UINT64
64-bit unsigned integer
Definition: apiPWP.h:243
CaeUnsElement::operator>
bool operator>(const PWGM_HELEMENT &rhs)
Compares the relative order of two CaeUnsElement instances.
Definition: CaeUnsElement.h:803
CaeUnsElementData::Pyramid
@ Pyramid
3D, 5-sided, quad-based grid
Definition: CaeUnsElement.h:81
PWGM_POLYELEMDATA::offsets
const PWP_UINT64 * offsets
Definition: apiGridModel.h:764
PWGM_ENUMELEMDATA
Enumerated model element descriptor data type.
Definition: apiGridModel.h:749
CaeUnsElementData::operator=
CaeUnsElementData & operator=(const PWGM_ELEMDATA &ed)
Assignment operator.
Definition: CaeUnsElement.h:214
CaeUnsElement::index
PWP_UINT32 index() const
Get the element's index.
Definition: CaeUnsElement.h:593
PWGM_HELEMENT_ISVALID
#define PWGM_HELEMENT_ISVALID(h)
returns non-zero value if handle is valid
Definition: apiGridModel.h:429
PWGM_ELEMTYPE_QUAD
@ PWGM_ELEMTYPE_QUAD
2D, 4-sided grid element
Definition: apiGridModel.h:675
PWGM_ELEMTYPE_HEX
@ PWGM_ELEMTYPE_HEX
3D, 6-sided (block) grid element
Definition: apiGridModel.h:674
CaeUnsElement::moveNext
CaeUnsElement & moveNext()
Rebinds an instance to the next element in an element group.
Definition: CaeUnsElement.h:686