Purpose

The module TypeFromDimension creates a non-scalar voxel image from components of a given dimension.

Tips

  1. The Component Base Indexes can also be used to reorder the composed voxel components, e.g. if the Y-components are stored first an a dimensions and then the X-components at higher positions.
  2. The Component Base Indexes can be e.g. 0 3 6 and Block Offset can be 1; in this way separated vector channels can be composed.

Windows

Default Panel

../../../Modules/ML/MLTypeSupport/mhelp/Images/Screenshots/TypeFromDimension._default.png

Input Fields

input0

name: input0, type: Image

Image whose extent in the Source Dim should be large enough to compose its values to at least one non-scalar voxel of Output Type.

Output Fields

output0

name: output0, type: Image

The output image of the non-scalar voxel type specified in Output Type.

Parameter Fields

Field Index

Block Offset: Integer
Component Base Indexes: String
Fill Value: Double
Output Type: Enum
Source Dim: Enum

Visible Fields

Output Type

name: outputType, type: Enum, default: vec3

Defines the voxel type of the output image, currently it must be a non-scalar voxel type which is composed from the values along the given Source Dim.

Scalar voxel types will lead to an invalidated output image.

Values:

Title Name
int8 int8
unsigned int8 unsigned int8
int16 int16
unsigned int16 unsigned int16
int32 int32
unsigned int32 unsigned int32
float float
double double
int64 int64
unsigned int64 unsigned int64
complexf complexf
complexd complexd
quaternionf quaternionf
quaterniond quaterniond
vec2 vec2
vec3 vec3
vec4 vec4
vec5 vec5
vec6 vec6
vec7 vec7
vec8 vec8
vec9 vec9
vec10 vec10
vec16 vec16
vec32 vec32
vec64 vec64
Vector2i8 Vector2i8
Vector2i16 Vector2i16
Vector2i32 Vector2i32
Vector2i64 Vector2i64
Vector3i8 Vector3i8
Vector3i16 Vector3i16
Vector3i32 Vector3i32
Vector3i64 Vector3i64
Vector4i8 Vector4i8
Vector4i16 Vector4i16
Vector4i32 Vector4i32
Vector4i64 Vector4i64
Vector5i8 Vector5i8
Vector5i16 Vector5i16
Vector5i32 Vector5i32
Vector5i64 Vector5i64
Vector6i8 Vector6i8
Vector6i16 Vector6i16
Vector6i32 Vector6i32
Vector6i64 Vector6i64
Vector7i8 Vector7i8
Vector7i16 Vector7i16
Vector7i32 Vector7i32
Vector7i64 Vector7i64
Vector8i8 Vector8i8
Vector8i16 Vector8i16
Vector8i32 Vector8i32
Vector8i64 Vector8i64
Vector9i8 Vector9i8
Vector9i16 Vector9i16
Vector9i32 Vector9i32
Vector9i64 Vector9i64
Vector10i8 Vector10i8
Vector10i16 Vector10i16
Vector10i32 Vector10i32
Vector10i64 Vector10i64
Vector16i8 Vector16i8
Vector16i16 Vector16i16
Vector16i32 Vector16i32
Vector16i64 Vector16i64
Vector32i8 Vector32i8
Vector32i16 Vector32i16
Vector32i32 Vector32i32
Vector32i64 Vector32i64
Vector64i8 Vector64i8
Vector64i16 Vector64i16
Vector64i32 Vector64i32
Vector64i64 Vector64i64
mat2 mat2
mat3 mat3
mat4 mat4
mat5 mat5
mat6 mat6
matf2 matf2
matf3 matf3
matf4 matf4
matf5 matf5
matf6 matf6
vecf2 vecf2
vecf3 vecf3
vecf4 vecf4
vecf5 vecf5
vecf6 vecf6
vecf7 vecf7
vecf8 vecf8
vecf9 vecf9
vecf10 vecf10
vecf16 vecf16
vecf32 vecf32
vecf64 vecf64

Component Base Indexes

name: componentBaseIndexes, type: String

Sets the positions of the first components of the first target voxel to be created.

For example:

If a vec3 image is created and Component Base Indexes are 0 1 2, and the Source Dim is C then a created output voxel reads its component values from C-positions 0, 1, and 2.

If Component Base Indexes are 0 3 6 then a created output voxel reads its component values from C-positions 0, 3, and 6.

See Block Offset to find out from where the source components of the subsequent target voxels are read.

Source Dim

name: sourceDim, type: Enum, default: T

Sets the dimension to be reordered and packed into non scalar voxel.

Values:

Title Name
X X
Y Y
Z Z
C C
T T
U U

Block Offset

name: blockOffset, type: Integer, default: 1, minimum: 1

Set the index difference between corresponding source components of two subsequent target voxels.

The source dimension Source Dim can contain more components than necessary to create one non scalar target voxel. The Component Base Indexes determine the indexes and orders of the source components of the first target voxel. However, subsequent voxels have other locations which usually differ from the first ones by an offset which can be specified by Block Offset.

Thus, the Block Offset is the difference between the index of a source component for the first target voxel and the corresponding one of the next target voxel.

Two typical configuration examples:

  1. If components 0, 1, and 2 are packed into the first vec3 target voxel (Component Base Indexes are 0, 1, and 2), and the component 3, 4, and 5 are packed into the second target voxel then the Block Offset is 3. (Interleaved source components.)
  2. If components 0, 3, and 6 are packed into the first vec3 target voxel (Component Base Indexes are 0, 3, and 6), the components 1, 4, and 7 are packed into the second target voxel, and the components 2, 5, and 8 are packed into the third target voxel then the Block Offset is 1. (Separated source components.)

Fill Value

name: fillValue, type: Double, default: 0

Sets a value used for target voxel components whose corresponding source voxels are outside the valid image range.