MeVisLab Toolbox Reference
mlDataTypes.h File Reference
#include "mlInitSystemML.h"
#include "mlUtilsAPI.h"
#include "mlTypeDefs.h"

Go to the source code of this file.

Functions

TYPE SYSTEM INITIALIZATION.

Defines basic data types, constants, and macros for MeVis projects.

This file also contains code that is used to implement new data types for the ML. There are also many convenience functions to simplify that. To register a new data type it is required to implement a set of type operations as static functions. Pointers to those functions are stored in a single MLTypeInfos structure and then registered in the ML with the command MLRegisterTypeInfos.

MLEXPORT MLint32 MLAreTypesInitialized ()
 Returns 1(=true) if type table is initialized, otherwise 0(=false). More...
 
MLEXPORT MLint32 MLInitializeTypes ()
 Initialize all ML type management. More...
 
MLEXPORT void MLDestroyTypes ()
 Destroy ML type management. More...
 
DATA TYPE MANAGEMENT.

Thread-safety: These functions are thread-safe, as long as no new datatypes are registered after startup.

MLEXPORT const char *const * MLDataTypeNames ()
 Function which returns the table of c-strings of all scalar and registered data types. More...
 
MLEXPORT size_t MLNumDataTypes ()
 Returns the current number of ML data types. More...
 
MLEXPORT const char * MLNameFromDataType (MLDataType dataType)
 Function which returns the null-terminated string name for data type dataType or "" in case of error or for an invalid data type. More...
 
MLEXPORT MLDataType MLDataTypeFromName (const char *const name)
 Returns the id of the data type with name name. More...
 
MLEXPORT MLdouble MLDataTypeMax (MLDataType dataType)
 Returns the maximum value of data type dataType or 0 if dataType is invalid. More...
 
MLEXPORT MLdouble MLDataTypeMin (MLDataType dataType)
 Returns the minimum value of data type dataType or 0 if dataType is invalid. More...
 
MLEXPORT size_t MLSizeOf (MLDataType dataType)
 Returns the size of the data type dataType in bytes. More...
 
MLEXPORT size_t MLSizeOfRegisteredType (MLDataType dataType)
 Compatibility function - obsolete, use MLSizeOf instead! More...
 
MLEXPORT MLint32 MLRangeOrder (MLDataType dataType)
 Returns order value for a data type ranges. More...
 
MLEXPORT MLint32 MLIsValidType (MLDataType dataType)
 Returns true(=1) if data type dataType seems to be valid, otherwise 0(=false). More...
 
MLEXPORT MLint32 MLIsSigned (MLDataType dataType)
 Returns true(=1) if data type dataType is signed, otherwise 0(=false). More...
 
MLEXPORT MLint32 MLIsIntType (MLDataType dataType)
 Returns true(=1) if data type dataType is an integer data type, otherwise false(=0). More...
 
MLEXPORT MLint32 MLIsFloatType (MLDataType dataType)
 Returns true(=1) if data type dataType is a floating point data type, otherwise false(=0). More...
 
MLEXPORT MLint32 MLIsStandardType (MLDataType dataType)
 Returns true(=1) if data type dataType is a standard (scalar) type, otherwise return false(=0). More...
 
MLEXPORT MLint32 MLIsScalarType (MLDataType dataType)
 Alternative name for MLIsStandardType. More...
 
MLEXPORT MLint32 MLIsDefaultExtendedType (MLDataType dataType)
 Returns true(=1) if data type dataType is one of the extended types that should be support out of the box, otherwise return false(=0). More...
 
MLEXPORT MLTypeGroup MLGetTypeGroup (MLDataType dataType)
 Get the type group to which the given type belongs. More...
 
MLEXPORT MLDataType MLGetPromotedTypeWithRange (const MLDataType *inputTypes, size_t numTypes, double rangeMin, double rangeMax)
 New routine for type promotion that takes a list of input types and the target value range to find a resulting data type. More...
 
MLEXPORT MLDataType MLGetPromotedTypeWithRange1Input (MLDataType inputType1, double rangeMin, double rangeMax)
 Convenience function for MLGetPromotedTypeWithRange with 1 input. More...
 
MLEXPORT MLDataType MLGetPromotedTypeWithRange2Inputs (MLDataType inputType1, MLDataType inputType2, double rangeMin, double rangeMax)
 Convenience function for MLGetPromotedTypeWithRange with 2 inputs. More...
 
MLEXPORT MLDataType MLGetPromotedTypeWithRange3Inputs (MLDataType inputType1, MLDataType inputType2, MLDataType inputType3, double rangeMin, double rangeMax)
 Convenience function for MLGetPromotedTypeWithRange with 3 inputs. More...
 
MLEXPORT MLint32 MLHolds (MLDataType datatype1, MLDataType datatype2)
 Returns true(=1) if data type \ datatype1 can hold data type datatype2 without precision or sign loss. More...
 
MLEXPORT MLDataType MLGetPromotedType (MLDataType datatype1, MLDataType datatype2)
 Returns a data type which can hold the value ranges from datatype1 and datatype2 (including both). More...
 
MLEXPORT MLDataType MLGetIntegerDataTypeForRange (double rangeMin, double rangeMax)
 Returns the minimal integer type that can hold the given range. More...
 
MLEXPORT MLDataType MLGetDataTypeForRange (MLdouble *min, MLdouble *max, MLint32 preferUnsigned)
 Corrects order of *min and *max and return adequate standard data type. More...
 
MLEXPORT MLDataType MLGetDataTypeForUncorrectedRange (MLdouble min, MLdouble max, MLint32 preferUnsigned)
 Like getMLDataTypeForRange with the following differences: More...
 
MLEXPORT MLDataType MLGetRangeAndPrecisionEquivalent (MLDataType dataType)
 Returns a standard data type for dataType which has a comparable precision and range behavior. More...
 
MLEXPORT MLDataType MLGetPromotedPrecision (MLDataType datatype1, MLDataType datatype2)
 Returns one of datatype1 and datatype2 which has a higher precision. More...
 
MLEXPORT MLErrorCode MLClampIntervalToDataTypeRange (double intervalMin, double intervalMax, MLDataType datatype, double *resultIntervalMin, double *resultIntervalMax)
 Clamps the given lower/upper interval to the data type's range and checks if the interval is completely outside of data type's range. More...
 
MLEXPORT size_t MLTypeGetNumComponents (MLDataType dataType)
 Returns the number of components of the data type datatype or 0 in case of an invalid data type. More...
 
MLEXPORT const char * MLTypeGetStructInfoString (MLDataType dataType)
 Returns the components codes of the data type dataType or "" in case of an invalid data type. More...
 
MLEXPORT MLDataType MLTypeGetBestScalarTypeForTypeComponentChars (const char *charCodes, int suppressML64BitInts, int suppressMLldouble)
 Returns a standard data type which is able to hold the precisions of each of the type component characters passed as charCodes. More...
 
MLEXPORT MLDataType MLTypeGetBestScalarTypeForTypeComponents (MLDataType dataType, int suppressML64BitInts, int suppressMLldouble)
 Return a standard data type which is able to hold the precisions of each of the components of the type dataType. More...
 
MLTypePropertyBits handling.
MLEXPORT MLint32 MLTypePropBitsTest (MLTypePropertyBits propertyBits, MLTypePropertyBits mask)
 Returns true(=1) if bit mask mask is part of propertyBits, otherwise return false(=0). More...
 
MLEXPORT MLTypePropertyBits MLTypePropBitsAnd (MLTypePropertyBits propertyBits, MLTypePropertyBits mask)
 Ands of all bits in mask and those in propertyBits. More...
 
MLEXPORT MLTypePropertyBits MLTypePropBitsOr (MLTypePropertyBits propertyBits, MLTypePropertyBits mask)
 Adds all set bits in mask to those in propertyBits. More...
 
MLEXPORT MLTypePropertyBits MLTypePropBitsXor (MLTypePropertyBits propertyBits, MLTypePropertyBits mask)
 Inverts all set bits property bits from propertyBits which are set in mask. More...
 
REGISTRATION OF NEW DATA TYPES.
MLEXPORT MLint32 MLRegisterTypeInfos (MLTypeInfos *infos)
 Adds the data type class infos to the list of registered data types. More...
 
MLEXPORT MLint32 MLRegisterStaticTypeInfos (MLTypeInfos *infos, MLDataType dt)
 Version of the method which allows to specify a pre-defined data type value. More...
 
MLEXPORT MLint32 MLIsRegisteredTypeInfos (const MLTypeInfos *infos)
 Returns 1(=true) if data type is already registered. Otherwise 0(=false) is returned. More...
 
MLEXPORT size_t MLGetNumRegisteredTypeInfos ()
 Returns the number of registered type operations. More...
 
MLEXPORT MLTypeInfosMLGetTypeInfosAtIndex (size_t index)
 Returns the index th registered type operation, NULL on invalid index. More...
 
MLEXPORT MLTypeInfosMLGetTypeInfosForDataType (MLDataType dataType)
 Returns the MLTypeInfos for the data type dataType, or NULL on non registered or invalid type. More...
 
MLType support.
MLEXPORT MLint32 MLTypeInfosInit (MLTypeInfos *infos, size_t typeSize, const char *name, MLdouble dblMin, MLdouble dblMax, const MLTypeData *typeMinPtr, const MLTypeData *typeMaxPtr, const MLTypeData *typeDefaultPtr, const char *typeStructInfo, MLint32 isScalarType, MLTypeGroup typeGroup, MLDataType rangeAndPrecisionEquiv, void **componentAddresses, size_t numGoodCastTos, const char **goodCastTos)
 Initialization of the main properties of MLTypeInfos. More...
 
MLEXPORT MLTypeDataMLTypeInfosCreateBuffer (const MLTypeInfos *infos)
 Returns a buffer of the size of one data element. NULL is returned on failure. More...
 
MLEXPORT void MLTypeInfosRemoveBuffer (MLTypeData *buffer)
 Removes a buffer created with MLTypeInfosCreateBuffer. More...
 
MLEXPORT void MLTypeCorrectPropertyBits (MLTypeInfos *infos)
 Corrects all property bits except of the basic properties (MLTypeIsSignedType, MLTypeIsFloatingPointType, MLTypeIsIntegerType, MLIsBasicType). More...
 
MLEXPORT void MLTypeSetDefaultFunctionPointers (MLTypeInfos *infos)
 Sets all function pointers to default values which do error handling when called. More...
 
MLEXPORT void MLTypeToggleEndianType (const MLTypeInfos *infos, const MLTypeData *sourceBufferPointer, MLTypeData *targetBufferPointer, size_t numInstances)
 Converts data type instances from little endian to big endian or vice versa. More...
 
MLEXPORT void MLTypeConvertToLittleEndian (const MLTypeInfos *infos, const MLTypeData *sourceBufferPointer, MLTypeData *targetBufferPointer, size_t numInstances)
 Converts data type instances from big endian to little endian. More...
 
MLEXPORT void MLTypeConvertToBigEndian (const MLTypeInfos *infos, const MLTypeData *sourceBufferPointer, MLTypeData *targetBufferPointer, size_t numInstances)
 Converts data type instances from little endian to big endian. More...
 
MLType components.
MLEXPORT const char * MLGetCDataTypeNameForCharCode (char code)
 Returns the basic C/C++ data type name corresponding to a character representing it. More...
 
MLEXPORT const char * MLGetMLDataTypeNameForCharCode (char code)
 Returns an ML type name type name compatible to a character representing it. More...
 
MLEXPORT MLDataType MLGetMLDataTypeForCharCode (char code)
 Returns an ML data type compatible to a character representing it. More...
 
MLEXPORT MLint32 MLTypeGetComponentProperties (char code, MLint32 *isSigned, MLint32 *isIntegerType, MLint32 *isFloatingPointType, MLint32 *isLongType)
 Returns true (=1) in *isSigned, *isIntegerType, *isFloatingPointType and *isLongType if the component type represented by code has this features, otherwise set that flag to false (=0). More...
 
MLEXPORT size_t MLTypeComponentSize (char component)
 Returns the sizeof of a MLTypeComponent component denoted by a character code. More...
 
MLEXPORT void MLTypeSetDoubleComponent (char component, MLdouble value, MLTypeData *targetPointer)
 Interprets the data referenced by *targetPointer as data of the type component and sets its value from the passed double value by casting the value to it. More...
 
MLEXPORT void MLTypeSetIntComponent (char component, MLint value, MLTypeData *targetPointer)
 Like MLTypeSetDoubleComponent, only components are set to integer values. More...
 
MLEXPORT void MLTypeSetAllDoubleComponents (const MLTypeInfos *infos, MLdouble value, MLTypeData *targetPointer)
 All components of the data referenced by *targetPointer are set to their values cast from the double value. More...
 
MLEXPORT void MLTypeSetAllIntComponent (const MLTypeInfos *infos, MLint value, MLTypeData *targetPointer)
 Like MLTypeSetAllDoubleComponents, only components are set to integer values. More...
 
MLEXPORT MLdouble MLTypeGetDoubleComponent (char component, const MLTypeData *targetPointer)
 Interpret the data referenced by *targetPointer as data of the type component and return it as double value. More...
 
MLEXPORT MLint MLTypeGetIntComponent (char component, const MLTypeData *targetPointer)
 Like MLTypeGetComponent, only that the components is returned as integer values. More...
 
MLEXPORT MLErrorCode MLTypeGetMinMaxRangeOfComponents (const MLTypeInfos *infos, const MLTypeData *srcPtr, MLdouble *retMin, MLdouble *retMax)
 Returns the min/max range of all components of an arbitrary registered voxel. More...
 
Convenience implementations and helpers for implementation of new data types.
MLEXPORT MLTypeDataMLAllocateVoxelBuffer (MLDataType dataType, size_t numVoxels, const MLTypeData *voxelDefaultValue)
 Returns a buffer of numVoxels voxels of data type dataType. More...
 
MLEXPORT char * MLGetVoxelValueAsString (const MLTypeData *data, MLDataType dataType, MLErrorCode *errorCode)
 Interprets the data given by data as a value of type dataType and return its value as string. More...
 
MLEXPORT char * MLGetVoxelValueAsStringLimited (const MLTypeData *data, MLDataType dataType, MLErrorCode *errorCode, int maxPrecision)
 Interprets the data given by data as a value of type dataType and returns its value as string. More...
 
MLEXPORT char * MLTypeComponentsToString (const MLTypeInfos *infos, const MLTypeData *data)
 Converts a data type instance to a string. More...
 
MLEXPORT char * MLTypeComponentsToStringLimited (const MLTypeInfos *infos, const MLTypeData *data, int maxPrecision)
 Converts a data type instance to a string. More...
 
MLEXPORT MLint32 MLTypeComponentsFromString (const MLTypeInfos *infos, const char *stringData, const MLTypeData *defaultValue, MLTypeData *data)
 Converts a string of a data type instance to instance data, i.e., like an sscanf. More...
 
MLEXPORT MLTypeDataMLTypeGetDataValuesFromString (MLDataType dataType, const char *voxelValue, const MLTypeData *defaultValue, size_t numInstances)
 Allocates a buffer for numInstances of data type dataType and fills it with the data type value converted from the null-terminated string voxValue. More...
 
MLEXPORT MLint32 MLTypeComponentsFromStream (void *iStr, void *iStrStream, void *stdiStr, void *stdiStrStream, const MLTypeInfos *infos, MLTypeData *data)
 Reads data type components into different stream versions (istream and istrstream within and outside the standard namespace). More...
 
MLEXPORT MLdouble MLGetVoxelValueAsDouble (const void *data, MLDataType dataType, MLErrorCode *errorCode)
 Interprets the data given by data as a value of type dataType and returns its value cast to double. More...
 
MLEXPORT bool MLTypeCastToBool (const MLTypeInfos *infos, const MLTypeData *data)
 If data is identical to default element "false" (= 0) is returned, otherwise "true" (= 1). More...
 
MLEXPORT MLint MLTypeCastToInt (const MLTypeInfos *infos, const MLTypeData *data)
 The first component of the data type is converted to integer and returned. More...
 
MLEXPORT MLdouble MLTypeCastToDouble (const MLTypeInfos *infos, const MLTypeData *data)
 The first component of the data type is converted to double and returned. More...
 
MLEXPORT void MLTypeCastFromBool (const MLTypeInfos *infos, bool boolValue, MLTypeData *data)
 If boolValue == 0, data is set to the type default value given by infos. More...
 
MLEXPORT void MLTypeCastFromInt (const MLTypeInfos *infos, MLint intValue, MLTypeData *data)
 The integer value of intValue is cast to the types of the components and then written to them. More...
 
MLEXPORT void MLTypeCastFromDouble (const MLTypeInfos *infos, MLdouble doubleValue, MLTypeData *data)
 The value doubleValue is cast to the types of the components and then written to them. More...
 
MLEXPORT void MLTypeShiftComponentsLeft (const MLTypeInfos *infos, const MLTypeData *sourceData, MLint shiftLeft, MLTypeData *targetData)
 Takes one data type component after another and shifts each component left shiftLs times if it is an integer component. More...
 
MLEXPORT void MLTypeCastToOtherType (const MLTypeInfos *otherInfos, const MLTypeData *otherData, const MLTypeInfos *myInfos, MLTypeData *myData)
 Converts a data instance referenced by otherData of a type specified by otherInfos to another data instance referenced by *myData of a type specified by myInfos. More...
 
MLEXPORT void MLTypeCastFromOtherType (const MLTypeInfos *otherInfos, const MLTypeData *otherData, const MLTypeInfos *myInfos, MLTypeData *myData)
 Casts another data element otherData with attributes given by otherInfos to myData of a type given by myInfos. More...
 
MLEXPORT void MLTypeMultWithOtherType (const MLTypeInfos *myInfos, const MLTypeData *myData, const MLTypeInfos *otherInfos, const MLTypeData *otherData, MLTypeData *targetData)
 Casts another data element otherData with attributes given by otherInfos to a local buffer of a type given by myInfos. More...
 

Variables

Property bits describing functions eventually implemented functions set in MLTypeOperatorFunctions.
MLEXPORT const MLTypePropertyBits MLTypeHasNoProperties
 The data type has no standard properties. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasGetStringValue
 The function getStringValue is implemented. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasSetStringValue
 The function setStringValue is implemented. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeIsDefaultType
 The data type is one of the default types (standard scalar or default extended). More...
 
MLEXPORT const MLTypePropertyBits MLTypeIsSignedType
 The data type is signed. More...
 
MLEXPORT const MLTypePropertyBits MLTypeIsFloatingPointType
 The data type is a floating point type. False otherwise. More...
 
MLEXPORT const MLTypePropertyBits MLTypeIsIntegerType
 The data type is an integer type. False otherwise. More...
 
MLEXPORT const MLTypePropertyBits MLTypeIsStandardType
 The data type is standard scalar data type(intUL, floatUL, charUL, ...). More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasSetToMinimum
 The setToMinimum function is implemented. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasSetToMaximum
 The setToMaximum function is implemented. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasSetToDefault
 The setToDefault function is implemented. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCopy
 Copy parameter one to parameter 2. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastToBool
 A data type instance can be cast to bool. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastToInt
 A data type instance can be cast to integer. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastToDouble
 A data type instance can be cast to double. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastToOtherType
 A data type instance can be cast to another type. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastFromInt
 An integer can be cast to a data type instance. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastFromDouble
 A double can be cast to a data type instance. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasCastFromOtherType
 Any data type instance can be cast a data type instance. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasNegate
 The negative value of a data type instance can be calculated. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasNormalize
 A data type instance can be normalized. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasIsEqualToType
 An equality relation between two type instances can be calculated. (Note: This function must be implemented.) More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasMultWithInt
 Data type instance can be multiplied with integer. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasMultWithDouble
 Data type instance can be multiplied with double. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasMultWithType
 Two data type instances can be multiplied. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasMultWithOtherType
 A data type instances can be multiplied with the one of another type. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasPlusInt
 A data type instance and an integer can be added. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasPlusDouble
 A data type instance and a double can be added. More...
 
MLEXPORT const MLTypePropertyBits MLTypeHasPlusType
 Two data type instances can be added. More...
 
Bit masks specifying general properties of a data type.
MLEXPORT const MLTypePropertyBits MLTypeScalarType
 A data type has all standard properties of a scalar type. More...
 

Function Documentation

◆ MLAllocateVoxelBuffer()

MLEXPORT MLTypeData* MLAllocateVoxelBuffer ( MLDataType  dataType,
size_t  numVoxels,
const MLTypeData voxelDefaultValue 
)

Returns a buffer of numVoxels voxels of data type dataType.

On failure NULL is returned. If voxelDefaultValue is NULL, the allocated memory is left undefined, otherwise all voxels are filled with the the default value pointed to by voxelDefaultValue. The allocated buffer must be removed with MLFree().

◆ MLAreTypesInitialized()

MLEXPORT MLint32 MLAreTypesInitialized ( )

Returns 1(=true) if type table is initialized, otherwise 0(=false).

◆ MLDestroyTypes()

MLEXPORT void MLDestroyTypes ( )

Destroy ML type management.

◆ MLGetCDataTypeNameForCharCode()

MLEXPORT const char* MLGetCDataTypeNameForCharCode ( char  code)

Returns the basic C/C++ data type name corresponding to a character representing it.

On an invalid code, "" is returned.

◆ MLGetMLDataTypeForCharCode()

MLEXPORT MLDataType MLGetMLDataTypeForCharCode ( char  code)

Returns an ML data type compatible to a character representing it.

On an invalid code, ML_INVALID_DATA_TYPE is returned.

◆ MLGetMLDataTypeNameForCharCode()

MLEXPORT const char* MLGetMLDataTypeNameForCharCode ( char  code)

Returns an ML type name type name compatible to a character representing it.

On an invalid code, "" is returned. The return value match for function calls to MLDataTypeFromName().

◆ MLGetNumRegisteredTypeInfos()

MLEXPORT size_t MLGetNumRegisteredTypeInfos ( )

Returns the number of registered type operations.

◆ MLGetTypeInfosAtIndex()

MLEXPORT MLTypeInfos* MLGetTypeInfosAtIndex ( size_t  index)

Returns the index th registered type operation, NULL on invalid index.

◆ MLGetTypeInfosForDataType()

MLEXPORT MLTypeInfos* MLGetTypeInfosForDataType ( MLDataType  dataType)

Returns the MLTypeInfos for the data type dataType, or NULL on non registered or invalid type.

Referenced by ml::SubImage::getDataTypeInfos().

◆ MLGetVoxelValueAsDouble()

MLEXPORT MLdouble MLGetVoxelValueAsDouble ( const void *  data,
MLDataType  dataType,
MLErrorCode errorCode 
)

Interprets the data given by data as a value of type dataType and returns its value cast to double.

If something fails, 0 is returned. errorCode may be passed as NULL. If errorCode is not NULL, *errorCode is set to the error code on failures; otherwise it is set to ML_RESULT_OK.

◆ MLGetVoxelValueAsString()

MLEXPORT char* MLGetVoxelValueAsString ( const MLTypeData data,
MLDataType  dataType,
MLErrorCode errorCode 
)

Interprets the data given by data as a value of type dataType and return its value as string.

If something fails, "" is returned. errorCode may be passed as NULL. If errorCode is not NULL, *errorCode is set to the error code on failures; otherwise it is set to ML_RESULT_OK. Floating point values are normally printed with maximum precision. The returned pointer must be freed with MLFree().

◆ MLGetVoxelValueAsStringLimited()

MLEXPORT char* MLGetVoxelValueAsStringLimited ( const MLTypeData data,
MLDataType  dataType,
MLErrorCode errorCode,
int  maxPrecision 
)

Interprets the data given by data as a value of type dataType and returns its value as string.

If something fails, "" is returned. errorCode may be passed as NULL. If errorCode is not NULL, *errorCode is set to the error code on failures; otherwise it is set to ML_RESULT_OK. If maxPrecision is passed with values smaller than 0 then maximum precision of floating point numbers is printed. If passed >= 0 then the number of digits is limited to maxPrecision. It will be not larger than the maximum default precision even if specified so. The returned pointer must be freed with MLFree().

◆ MLInitializeTypes()

MLEXPORT MLint32 MLInitializeTypes ( )

Initialize all ML type management.

0 (=false) is returned on failure, 1 (=true) on success. This function must be called before using any ML* function.

◆ MLIsRegisteredTypeInfos()

MLEXPORT MLint32 MLIsRegisteredTypeInfos ( const MLTypeInfos infos)

Returns 1(=true) if data type is already registered. Otherwise 0(=false) is returned.

◆ MLRegisterStaticTypeInfos()

MLEXPORT MLint32 MLRegisterStaticTypeInfos ( MLTypeInfos infos,
MLDataType  dt 
)

Version of the method which allows to specify a pre-defined data type value.

◆ MLRegisterTypeInfos()

MLEXPORT MLint32 MLRegisterTypeInfos ( MLTypeInfos infos)

Adds the data type class infos to the list of registered data types.

Returns 1(=true) on success, 0(=false) on failure (e.g., out of memory, table not initialized, type exists,...). Registration of infos sets infos->dataTypeId. Note that number of data types is limited to 2^32-1 even on 64 bit systems to have cast option to MLDataType enum/integer.

◆ MLTypeCastFromBool()

MLEXPORT void MLTypeCastFromBool ( const MLTypeInfos infos,
bool  boolValue,
MLTypeData data 
)

If boolValue == 0, data is set to the type default value given by infos.

If boolValue != 0, all components of the type are cast to their values cast from 1.

◆ MLTypeCastFromDouble()

MLEXPORT void MLTypeCastFromDouble ( const MLTypeInfos infos,
MLdouble  doubleValue,
MLTypeData data 
)

The value doubleValue is cast to the types of the components and then written to them.

◆ MLTypeCastFromInt()

MLEXPORT void MLTypeCastFromInt ( const MLTypeInfos infos,
MLint  intValue,
MLTypeData data 
)

The integer value of intValue is cast to the types of the components and then written to them.

◆ MLTypeCastFromOtherType()

MLEXPORT void MLTypeCastFromOtherType ( const MLTypeInfos otherInfos,
const MLTypeData otherData,
const MLTypeInfos myInfos,
MLTypeData myData 
)

Casts another data element otherData with attributes given by otherInfos to myData of a type given by myInfos.

See MLTypeCastToOtherType for more infos.

◆ MLTypeCastToBool()

MLEXPORT bool MLTypeCastToBool ( const MLTypeInfos infos,
const MLTypeData data 
)

If data is identical to default element "false" (= 0) is returned, otherwise "true" (= 1).

◆ MLTypeCastToDouble()

MLEXPORT MLdouble MLTypeCastToDouble ( const MLTypeInfos infos,
const MLTypeData data 
)

The first component of the data type is converted to double and returned.

◆ MLTypeCastToInt()

MLEXPORT MLint MLTypeCastToInt ( const MLTypeInfos infos,
const MLTypeData data 
)

The first component of the data type is converted to integer and returned.

◆ MLTypeCastToOtherType()

MLEXPORT void MLTypeCastToOtherType ( const MLTypeInfos otherInfos,
const MLTypeData otherData,
const MLTypeInfos myInfos,
MLTypeData myData 
)

Converts a data instance referenced by otherData of a type specified by otherInfos to another data instance referenced by *myData of a type specified by myInfos.

As long as components of any data type in the source exist the myData components are set to the same values. Components which do not have a counterpart in the otherData are filled with the counterparts from its default value given by the myInfos. E.g.: If an (int, char, double) data type (represented by "ICd") is cast to a four component float vector (represented by "ffff") then the first three components are set from an int cast to double, from an char cast to double and from an double cast to double. The fourth component is copied from the fourth component of of the type default value given in the MLTypeInfo otherInfos.

Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_castFromOtherType(), and ml::MLTStdTypeInfos< VTYP >::MLTYPE_castToOtherType().

◆ MLTypeComponentsFromStream()

MLEXPORT MLint32 MLTypeComponentsFromStream ( void *  iStr,
void *  iStrStream,
void *  stdiStr,
void *  stdiStrStream,
const MLTypeInfos infos,
MLTypeData data 
)

Reads data type components into different stream versions (istream and istrstream within and outside the standard namespace).

Since we have a c-interface here we need to pass the pointers to the streams as void * addresses. So be careful to which of the first parameters the stream is passed. All other can be set to NULL. On any error *data is correctly set as far as possible, and all unreadable values are set to the default value. On bad parameters, failures or not completely readable values 0 is returned, otherwise 1.

◆ MLTypeComponentsFromString()

MLEXPORT MLint32 MLTypeComponentsFromString ( const MLTypeInfos infos,
const char *  stringData,
const MLTypeData defaultValue,
MLTypeData data 
)

Converts a string of a data type instance to instance data, i.e., like an sscanf.

infos points to the type information and data points to the data of the type instance to be filled with data scanned from stringData. The return value is 1 if the string could be scanned successfully. On scan failures or invalid parameters 0 is returned. If a default value is passed in defaultValue, components which could not be scanned correctly are copied from their corresponding positions in defaultValue. If defaultValue is passed as NULL, those components are left unchanged.

Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_setStringValue().

◆ MLTypeComponentSize()

MLEXPORT size_t MLTypeComponentSize ( char  component)

Returns the sizeof of a MLTypeComponent component denoted by a character code.

On invalid character codes 0 is returned. Valid codes are 'b' = bool , 'c' = unsigned char , 'C' = char , 's' = unsigned short 'S' = short , 'i' = unsigned int , 'I' = int , 'l' = unsigned long 'L' = long , '6' = MLint64 , 'f' = float , 'd' = double 'D' = long double, '9' = MLuint64

◆ MLTypeComponentsToString()

MLEXPORT char* MLTypeComponentsToString ( const MLTypeInfos infos,
const MLTypeData data 
)

Converts a data type instance to a string.

infos points to the type information and data points to the data of the type instance. The return value is a string containing the type components converted to string values separated by spaces. It must be freed with MLFree(). Floating point values are normally printed with maximum precision. On failures (e.g., infos==NULL or data==NULL), an empty string is returned which also must be freed.

Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_getStringValue().

◆ MLTypeComponentsToStringLimited()

MLEXPORT char* MLTypeComponentsToStringLimited ( const MLTypeInfos infos,
const MLTypeData data,
int  maxPrecision 
)

Converts a data type instance to a string.

infos points to the type information and data points to the data of the type instance. The return value is a string containing the type components converted to string values separated by spaces. It must be freed with MLFree(). If maxPrecision is passed with values smaller than 0 then maximum precision of floating point numbers is printed. If passed >= 0 then the number of digits is limited to maxPrecision. It will be not larger than the maximum default precision even if specified so. On failures (e.g., infos==NULL or data==NULL), an empty string is returned which also must be freed.

◆ MLTypeConvertToBigEndian()

MLEXPORT void MLTypeConvertToBigEndian ( const MLTypeInfos infos,
const MLTypeData sourceBufferPointer,
MLTypeData targetBufferPointer,
size_t  numInstances 
)

Converts data type instances from little endian to big endian.

Parameters
infosthe TypeInfos data structure describing the data type.
sourceBufferPointerpoints to the first instance to be converted.
targetBufferPointerpoints to the memory area where the converted instances shall be stored. Identical srcBufPtr and targetBufPtr will be handled correctly.
numInstancesthe number of instances to be converted. The call will be ignored if any parameter pointer is NULL or numInstances is 0.

◆ MLTypeConvertToLittleEndian()

MLEXPORT void MLTypeConvertToLittleEndian ( const MLTypeInfos infos,
const MLTypeData sourceBufferPointer,
MLTypeData targetBufferPointer,
size_t  numInstances 
)

Converts data type instances from big endian to little endian.

Parameters
infosthe TypeInfos data structure describing the data type.
sourceBufferPointerpoints to the first instance to be converted.
targetBufferPointerpoints to the memory area where the converted instances shall be stored. Identical srcBufPtr and targetBufPtr will be handled correctly.
numInstancesthe number of instances to be converted. The call will be ignored if any parameter pointer is NULL or numInstances is 0.

◆ MLTypeCorrectPropertyBits()

MLEXPORT void MLTypeCorrectPropertyBits ( MLTypeInfos infos)

Corrects all property bits except of the basic properties (MLTypeIsSignedType, MLTypeIsFloatingPointType, MLTypeIsIntegerType, MLIsBasicType).

Must be called after initialization and settings function pointers. infos must be a pointer to a valid MLTypeOperatorFunctions struct.

◆ MLTypeGetComponentProperties()

MLEXPORT MLint32 MLTypeGetComponentProperties ( char  code,
MLint32 isSigned,
MLint32 isIntegerType,
MLint32 isFloatingPointType,
MLint32 isLongType 
)

Returns true (=1) in *isSigned, *isIntegerType, *isFloatingPointType and *isLongType if the component type represented by code has this features, otherwise set that flag to false (=0).

Note that long types are MLldouble ('D'), MLint64 ('6'), and MLuint64 ('9'). long and unsigned long ('l' and 'L') are not considered as long types since they are in most cases also 32 bit types. Invalid code values return false (=0) in all parameters. It is explicitly permitted to pass NULL as isSigned, isIntegerType, isFloatingPointType or isLongType. Then these pointers are simple ignored. true (=1) is returned if comp was a valid component, otherwise the return value is 0.

◆ MLTypeGetDataValuesFromString()

MLEXPORT MLTypeData* MLTypeGetDataValuesFromString ( MLDataType  dataType,
const char *  voxelValue,
const MLTypeData defaultValue,
size_t  numInstances 
)

Allocates a buffer for numInstances of data type dataType and fills it with the data type value converted from the null-terminated string voxValue.

All type components which cannot be converted correctly are filled with the corresponding components from defaultValue, or if defaultValue is NULL, from the type specific component defaults. On success a pointer to the allocated data is returned, otherwise NULL. The returned value must be freed by the calling application with MLFree().

◆ MLTypeGetDoubleComponent()

MLEXPORT MLdouble MLTypeGetDoubleComponent ( char  component,
const MLTypeData targetPointer 
)

Interpret the data referenced by *targetPointer as data of the type component and return it as double value.

Invalid character codes are ignored and change nothing. Then the return value is 0.

◆ MLTypeGetIntComponent()

MLEXPORT MLint MLTypeGetIntComponent ( char  component,
const MLTypeData targetPointer 
)

Like MLTypeGetComponent, only that the components is returned as integer values.

◆ MLTypeGetMinMaxRangeOfComponents()

MLEXPORT MLErrorCode MLTypeGetMinMaxRangeOfComponents ( const MLTypeInfos infos,
const MLTypeData srcPtr,
MLdouble retMin,
MLdouble retMax 
)

Returns the min/max range of all components of an arbitrary registered voxel.

Parameters
infosType information describing the data type of the voxel passed in srcPtr.
srcPtrA pointer to one voxel of the data type described in infos.
retMinIgnored if NULL, otherwise *retMin is set to the lowest value found in all components of the voxel.
retMaxIgnored if NULL, otherwise *retMax is set to the highest value found in all components of the voxel.
Returns
ML_RESULT_OK if infos and srcPtr point to valid data and valid min/max values could be determined. Otherwise an error codes describing the error type (typically ML_BAD_PARAMETER).

◆ MLTypeInfosCreateBuffer()

MLEXPORT MLTypeData* MLTypeInfosCreateBuffer ( const MLTypeInfos infos)

Returns a buffer of the size of one data element. NULL is returned on failure.

◆ MLTypeInfosInit()

MLEXPORT MLint32 MLTypeInfosInit ( MLTypeInfos infos,
size_t  typeSize,
const char *  name,
MLdouble  dblMin,
MLdouble  dblMax,
const MLTypeData typeMinPtr,
const MLTypeData typeMaxPtr,
const MLTypeData typeDefaultPtr,
const char *  typeStructInfo,
MLint32  isScalarType,
MLTypeGroup  typeGroup,
MLDataType  rangeAndPrecisionEquiv,
void **  componentAddresses,
size_t  numGoodCastTos,
const char **  goodCastTos 
)

Initialization of the main properties of MLTypeInfos.

Returns 1(=true) on success, 0(=false) on failure.

Parameters
infosThe MLTypeInfos structure to be initialized.
registeredTypeSizeThe sizeof of the real data type (not the size of the carrying byte type)
namenull terminated string name of data type. Only alphanumeric characters without spaces, braces, etc., names should be used.
ldblMinSet minimum and maximum double values.
  • Try to select values which will not be exceeded when the new type is cast to double.
  • Try to select values which are converted to the types' minimum/maximum after casting them to the new type. However, that is desirable but not really necessary.
ldblMaxSee lbdblMin.
typeMinPtrSet pointers to a permanent instances of the the data type minimum and maximum value. Try to select minimum and maximum value so that they match to minimum and maximum double value after casting them to double. However, that is desirable but not really necessary.
typeMaxPtrSee typeMinPtr.
typeDefaultPtrPointer to a permanent instance of the data type default value.
  • This value will be used when initializing or completing incomplete type components e.g., after incomplete string scans or casts.
  • This value will also be used as a 0-element.
  • This value will be used as "false" on boolean casts in the default implementation. All other values will be considered as "true".
typeStructInfoSet pointer to a permanent null-terminated string describing the type configuration. It is needed for most default implementations of the type, e.g., correct big endian/little endian conversions when storing loading this data, for automatic casts to other type etc. It must exactly describe the types' configuration. Use
  • 'b' for a boolean.
  • 'c' for an unsigned character.
  • 'C' for a (signed) character.
  • 's' for an unsigned short.
  • 'S' for a signed short.
  • 'i' for an unsigned int.
  • 'I' for a signed int.
  • 'l' for an unsigned long.
  • 'L' for a signed long.
  • '6' for a 64 bit signed integer.
  • '9' for a 64 bit unsigned integer.
  • 'f' for a float.
  • 'd' for a double.
  • 'D' for a long double.
    So a data type consisting of a float[3], a bool, and two signed integers would lead to "fffbII".
isScalarTypePass true if it is a scalar type, i.e., one of the following: (unsigned) char, (unsigned) short, (unsigned) int, (unsigned) long, float, double, long double or MLint64.
rangeAndPrecisionEquivPass a standard data type which has comparable range and precision behavior.
componentAddressesis an array of pointers to the components of an example data instance so that gaps between components can be evaluated. It must contain exactly as many pointers as the length of typeStructInfo.
numGoodCastTosReturn types and number of them to which this type can be cast without information loss.
goodCastTosAn array to the string names of those data types to which this type can be cast without information loss. It must have exactly the number of entries given by numGoodCastTos.

Referenced by ml::MLTStdTypeInfos< VTYP >::MLTStdTypeInfos().

◆ MLTypeInfosRemoveBuffer()

MLEXPORT void MLTypeInfosRemoveBuffer ( MLTypeData buffer)

Removes a buffer created with MLTypeInfosCreateBuffer.

◆ MLTypeMultWithOtherType()

MLEXPORT void MLTypeMultWithOtherType ( const MLTypeInfos myInfos,
const MLTypeData myData,
const MLTypeInfos otherInfos,
const MLTypeData otherData,
MLTypeData targetData 
)

Casts another data element otherData with attributes given by otherInfos to a local buffer of a type given by myInfos.

That buffer is multiplied with myData and written into targetData. For the multiplication myInfos->multWithType is used.

Referenced by ml::MLTStdTypeInfos< VTYP >::MLTYPE_multWithOtherType().

◆ MLTypePropBitsAnd()

MLEXPORT MLTypePropertyBits MLTypePropBitsAnd ( MLTypePropertyBits  propertyBits,
MLTypePropertyBits  mask 
)

Ands of all bits in mask and those in propertyBits.

◆ MLTypePropBitsOr()

MLEXPORT MLTypePropertyBits MLTypePropBitsOr ( MLTypePropertyBits  propertyBits,
MLTypePropertyBits  mask 
)

Adds all set bits in mask to those in propertyBits.

◆ MLTypePropBitsTest()

MLEXPORT MLint32 MLTypePropBitsTest ( MLTypePropertyBits  propertyBits,
MLTypePropertyBits  mask 
)

Returns true(=1) if bit mask mask is part of propertyBits, otherwise return false(=0).

◆ MLTypePropBitsXor()

MLEXPORT MLTypePropertyBits MLTypePropBitsXor ( MLTypePropertyBits  propertyBits,
MLTypePropertyBits  mask 
)

Inverts all set bits property bits from propertyBits which are set in mask.

◆ MLTypeSetAllDoubleComponents()

MLEXPORT void MLTypeSetAllDoubleComponents ( const MLTypeInfos infos,
MLdouble  value,
MLTypeData targetPointer 
)

All components of the data referenced by *targetPointer are set to their values cast from the double value.

Casting is performed by the MLTypeSetComponent function.

◆ MLTypeSetAllIntComponent()

MLEXPORT void MLTypeSetAllIntComponent ( const MLTypeInfos infos,
MLint  value,
MLTypeData targetPointer 
)

Like MLTypeSetAllDoubleComponents, only components are set to integer values.

◆ MLTypeSetDefaultFunctionPointers()

MLEXPORT void MLTypeSetDefaultFunctionPointers ( MLTypeInfos infos)

Sets all function pointers to default values which do error handling when called.

infos must be a pointer to a valid MLTypeOperatorFunctions struct.

◆ MLTypeSetDoubleComponent()

MLEXPORT void MLTypeSetDoubleComponent ( char  component,
MLdouble  value,
MLTypeData targetPointer 
)

Interprets the data referenced by *targetPointer as data of the type component and sets its value from the passed double value by casting the value to it.

Invalid character codes are ignored and change nothing.

◆ MLTypeSetIntComponent()

MLEXPORT void MLTypeSetIntComponent ( char  component,
MLint  value,
MLTypeData targetPointer 
)

Like MLTypeSetDoubleComponent, only components are set to integer values.

◆ MLTypeShiftComponentsLeft()

MLEXPORT void MLTypeShiftComponentsLeft ( const MLTypeInfos infos,
const MLTypeData sourceData,
MLint  shiftLeft,
MLTypeData targetData 
)

Takes one data type component after another and shifts each component left shiftLs times if it is an integer component.

Floating point components are multiplied with 2^shiftLs. Negative values for shiftLs are interpreted as shift right operations or divisions by 2^shiftLs, respectively. Boolean components become false on all shiftLs != 0. Zero shiftLs does not change any component.

◆ MLTypeToggleEndianType()

MLEXPORT void MLTypeToggleEndianType ( const MLTypeInfos infos,
const MLTypeData sourceBufferPointer,
MLTypeData targetBufferPointer,
size_t  numInstances 
)

Converts data type instances from little endian to big endian or vice versa.

Parameters
infosthe TypeInfos data structure describing the data type.
sourceBufferPointerpoints to the first instance to be converted.
targetBufferPointerpoints to the memory area where the converted instances shall be stored. Identical srcBufPtr and targetBufPtr will be handled correctly.
numInstancesthe number of instances to be converted. The call will be ignored if any parameter pointer is NULL or numInstances is 0.

Variable Documentation

◆ MLTypeHasCastFromDouble

MLEXPORT const MLTypePropertyBits MLTypeHasCastFromDouble
extern

A double can be cast to a data type instance.

◆ MLTypeHasCastFromInt

MLEXPORT const MLTypePropertyBits MLTypeHasCastFromInt
extern

An integer can be cast to a data type instance.

◆ MLTypeHasCastFromOtherType

MLEXPORT const MLTypePropertyBits MLTypeHasCastFromOtherType
extern

Any data type instance can be cast a data type instance.

◆ MLTypeHasCastToBool

MLEXPORT const MLTypePropertyBits MLTypeHasCastToBool
extern

A data type instance can be cast to bool.

◆ MLTypeHasCastToDouble

MLEXPORT const MLTypePropertyBits MLTypeHasCastToDouble
extern

A data type instance can be cast to double.

◆ MLTypeHasCastToInt

MLEXPORT const MLTypePropertyBits MLTypeHasCastToInt
extern

A data type instance can be cast to integer.

◆ MLTypeHasCastToOtherType

MLEXPORT const MLTypePropertyBits MLTypeHasCastToOtherType
extern

A data type instance can be cast to another type.

◆ MLTypeHasCopy

MLEXPORT const MLTypePropertyBits MLTypeHasCopy
extern

Copy parameter one to parameter 2. (Note: This function must be implemented.)

◆ MLTypeHasGetStringValue

MLEXPORT const MLTypePropertyBits MLTypeHasGetStringValue
extern

The function getStringValue is implemented. (Note: This function must be implemented.)

◆ MLTypeHasIsEqualToType

MLEXPORT const MLTypePropertyBits MLTypeHasIsEqualToType
extern

An equality relation between two type instances can be calculated. (Note: This function must be implemented.)

◆ MLTypeHasMultWithDouble

MLEXPORT const MLTypePropertyBits MLTypeHasMultWithDouble
extern

Data type instance can be multiplied with double.

◆ MLTypeHasMultWithInt

MLEXPORT const MLTypePropertyBits MLTypeHasMultWithInt
extern

Data type instance can be multiplied with integer.

◆ MLTypeHasMultWithOtherType

MLEXPORT const MLTypePropertyBits MLTypeHasMultWithOtherType
extern

A data type instances can be multiplied with the one of another type.

◆ MLTypeHasMultWithType

MLEXPORT const MLTypePropertyBits MLTypeHasMultWithType
extern

Two data type instances can be multiplied.

◆ MLTypeHasNegate

MLEXPORT const MLTypePropertyBits MLTypeHasNegate
extern

The negative value of a data type instance can be calculated.

◆ MLTypeHasNoProperties

MLEXPORT const MLTypePropertyBits MLTypeHasNoProperties
extern

The data type has no standard properties.

◆ MLTypeHasNormalize

MLEXPORT const MLTypePropertyBits MLTypeHasNormalize
extern

A data type instance can be normalized.

◆ MLTypeHasPlusDouble

MLEXPORT const MLTypePropertyBits MLTypeHasPlusDouble
extern

A data type instance and a double can be added.

◆ MLTypeHasPlusInt

MLEXPORT const MLTypePropertyBits MLTypeHasPlusInt
extern

A data type instance and an integer can be added.

◆ MLTypeHasPlusType

MLEXPORT const MLTypePropertyBits MLTypeHasPlusType
extern

Two data type instances can be added.

◆ MLTypeHasSetStringValue

MLEXPORT const MLTypePropertyBits MLTypeHasSetStringValue
extern

The function setStringValue is implemented. (Note: This function must be implemented.)

◆ MLTypeHasSetToDefault

MLEXPORT const MLTypePropertyBits MLTypeHasSetToDefault
extern

The setToDefault function is implemented. (Note: This function must be implemented.)

◆ MLTypeHasSetToMaximum

MLEXPORT const MLTypePropertyBits MLTypeHasSetToMaximum
extern

The setToMaximum function is implemented. (Note: This function must be implemented.)

◆ MLTypeHasSetToMinimum

MLEXPORT const MLTypePropertyBits MLTypeHasSetToMinimum
extern

The setToMinimum function is implemented. (Note: This function must be implemented.)

◆ MLTypeIsDefaultType

MLEXPORT const MLTypePropertyBits MLTypeIsDefaultType
extern

The data type is one of the default types (standard scalar or default extended).

◆ MLTypeIsFloatingPointType

MLEXPORT const MLTypePropertyBits MLTypeIsFloatingPointType
extern

The data type is a floating point type. False otherwise.

◆ MLTypeIsIntegerType

MLEXPORT const MLTypePropertyBits MLTypeIsIntegerType
extern

The data type is an integer type. False otherwise.

◆ MLTypeIsSignedType

MLEXPORT const MLTypePropertyBits MLTypeIsSignedType
extern

The data type is signed.

◆ MLTypeIsStandardType

MLEXPORT const MLTypePropertyBits MLTypeIsStandardType
extern

The data type is standard scalar data type(intUL, floatUL, charUL, ...).

◆ MLTypeScalarType

MLEXPORT const MLTypePropertyBits MLTypeScalarType
extern

A data type has all standard properties of a scalar type.