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

Function GetSubRange

Common/Core/vtkDataArrayTupleRange_AOS.h:878–937  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

876// Tuple range
877template <typename ValueType, ComponentIdType TupleSize>
878struct TupleRange<vtkAOSDataArrayTemplate<ValueType>, TupleSize>
879{
880 using ArrayType = vtkAOSDataArrayTemplate<ValueType>;
881 using APIType = GetAPIType<ArrayType>;
882
883private:
884 static_assert(IsValidTupleSize<TupleSize>::value, "Invalid tuple size.");
885 static_assert(IsVtkDataArray<ArrayType>::value, "Invalid array type.");
886
887 using NumCompsType = GenericTupleSize<TupleSize>;
888
889public:
890 using TupleIteratorType = TupleIterator<ArrayType, TupleSize>;
891 using ConstTupleIteratorType = ConstTupleIterator<ArrayType, TupleSize>;
892 using TupleReferenceType = TupleReference<ArrayType, TupleSize>;
893 using ConstTupleReferenceType = ConstTupleReference<ArrayType, TupleSize>;
894 using ComponentIteratorType = APIType*;
895 using ConstComponentIteratorType = APIType const*;
896 using ComponentReferenceType = APIType&;
897 using ConstComponentReferenceType = const APIType&;
898 using ComponentType = APIType;
899
900 using size_type = TupleIdType;
901 using iterator = TupleIteratorType;
902 using const_iterator = ConstTupleIteratorType;
903 using reference = TupleReferenceType;
904 using const_reference = ConstTupleReferenceType;
905
906 // May be DynamicTupleSize, or the actual tuple size.
907 constexpr static ComponentIdType TupleSizeTag = TupleSize;
908
909 VTK_ITER_INLINE
910 TupleRange() noexcept = default;
911
912 VTK_ITER_INLINE
913 TupleRange(ArrayType* arr, TupleIdType beginTuple, TupleIdType endTuple) noexcept
914 : Array(arr)
915 , NumComps(arr)
916 , BeginTuple(beginTuple)
917 , EndTuple(endTuple)
918 {
919 assert(this->Array);
920 assert(beginTuple >= 0 && beginTuple <= endTuple);
921 assert(endTuple >= 0 && endTuple <= this->Array->GetNumberOfTuples());
922 if constexpr (IsStaticTupleSize<TupleSize>::value)
923 {
924 assert(arr->GetNumberOfComponents() == TupleSize);
925 }
926 }
927
928 VTK_ITER_INLINE
929 TupleRange GetSubRange(TupleIdType beginTuple = 0, TupleIdType endTuple = -1) const noexcept
930 {
931 const TupleIdType curBegin = this->GetTupleId(this->GetTuplePointer(this->BeginTuple));
932 const TupleIdType realBegin = curBegin + beginTuple;
933 const TupleIdType realEnd =
934 endTuple >= 0 ? curBegin + endTuple : this->GetTupleId(this->GetTuplePointer(this->EndTuple));
935

Callers

nothing calls this directly

Calls 1

GetTupleIdMethod · 0.45

Tested by

no test coverage detected