MCPcopy Create free account
hub / github.com/Kitware/VTK / IdStorage

Class IdStorage

Common/Core/vtkDataArrayValueRange_Generic.h:49–216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47// simple optimizations enabled.
48template <ComponentIdType TupleSize>
49struct IdStorage
50{
51 using NumCompsType = GenericTupleSize<TupleSize>;
52
53 VTK_ITER_INLINE
54 IdStorage() noexcept
55 : ValueId(0)
56 , TupleId(0)
57 , ComponentId(0)
58 {
59 }
60
61 VTK_ITER_INLINE
62 IdStorage(ValueIdType valueId, NumCompsType numComps) noexcept
63 : ValueId(valueId)
64 , TupleId(static_cast<TupleIdType>(valueId) / static_cast<TupleIdType>(numComps.value))
65 , ComponentId(static_cast<ComponentIdType>(valueId % static_cast<ValueIdType>(numComps.value)))
66 , NumComps(numComps)
67 {
68 }
69
70 VTK_ITER_INLINE
71 IdStorage(TupleIdType tupleId, ComponentIdType comp, NumCompsType numComps) noexcept
72 : ValueId(tupleId * numComps.value + comp)
73 , TupleId(tupleId)
74 , ComponentId(comp)
75 , NumComps(numComps)
76 {
77 }
78
79 VTK_ITER_INLINE
80 IdStorage(
81 ValueIdType valueId, TupleIdType tupleId, ComponentIdType comp, NumCompsType numComps) noexcept
82 : ValueId(valueId)
83 , TupleId(tupleId)
84 , ComponentId(comp)
85 , NumComps(numComps)
86 {
87 }
88
89 template <typename ArrayType>
90 VTK_ITER_INLINE void DebugAsserts(ArrayType* array) const noexcept
91 {
92 (void)array;
93 VTK_ITER_ASSERT(array != nullptr, "Invalid array.");
94 VTK_ITER_ASSERT(this->ValueId == this->TupleId * this->GetTupleSize() + this->ComponentId,
95 "Inconsistent internal state in IdStorage.");
96 VTK_ITER_ASSERT(this->GetTupleSize() > 0, "Invalid number of components.");
97 VTK_ITER_ASSERT(
98 this->ValueId >= 0 && this->ValueId <= array->GetNumberOfValues(), "Invalid value id.");
99 VTK_ITER_ASSERT(this->GetTupleId() >= 0 && this->GetTupleId() <= array->GetNumberOfTuples(),
100 "Invalid tuple id.");
101 VTK_ITER_ASSERT(this->GetComponentId() >= 0 &&
102 (this->GetComponentId() < this->GetTupleSize() ||
103 (this->GetComponentId() == this->GetTupleSize() &&
104 this->GetTupleId() == array->GetNumberOfTuples())),
105 "Invalid component id.");
106 VTK_ITER_ASSERT(this->GetValueId() >= 0 && this->GetValueId() <= array->GetNumberOfValues(),

Callers

nothing calls this directly

Calls 2

GetTupleSizeMethod · 0.95
ConvertFunction · 0.70

Tested by

no test coverage detected