18 #ifndef viskores_internal_ArrayPortalUniformPointCoordinates_h
19 #define viskores_internal_ArrayPortalUniformPointCoordinates_h
31 class VISKORES_ALWAYS_EXPORT ArrayPortalUniformPointCoordinates
37 ArrayPortalUniformPointCoordinates()
46 ArrayPortalUniformPointCoordinates(
viskores::Id3 dimensions, ValueType origin, ValueType spacing)
47 : Dimensions(dimensions)
48 , NumberOfValues(dimensions[0] * dimensions[1] * dimensions[2])
55 viskores::Id GetNumberOfValues()
const {
return this->NumberOfValues; }
63 (index / this->Dimensions[0]) % this->Dimensions[1],
64 index / (this->Dimensions[0] * this->Dimensions[1])));
74 VISKORES_ASSERT((index[0] < this->Dimensions[0]) && (index[1] < this->Dimensions[1]) &&
75 (index[2] < this->Dimensions[2]));
83 const viskores::Id3& GetDimensions()
const {
return this->Dimensions; }
86 const ValueType& GetOrigin()
const {
return this->Origin; }
89 const ValueType& GetSpacing()
const {
return this->Spacing; }
94 ValueType Origin = { 0.0f, 0.0f, 0.0f };
95 ValueType Spacing = { 0.0f, 0.0f, 0.0f };
100 #endif //viskores_internal_ArrayPortalUniformPointCoordinates_h