13 #ifndef ML_TYPE_DEFS_H
14 #define ML_TYPE_DEFS_H
18 #include "MeVisLabVersion.h"
26 #include <ThirdPartyWarningsDisable.h>
33 #include <sys/types.h>
36 #include <ThirdPartyWarningsRestore.h>
54 #define ML_NAMESPACE ml
57 #ifndef ML_START_NAMESPACE
61 #define ML_START_NAMESPACE namespace ML_NAMESPACE {
64 #ifndef ML_END_NAMESPACE
67 #define ML_END_NAMESPACE }
80 #define ML_PREFIX "ML"
86 #define ML_CONSTANT_PREFIX "ML_"
99 #define ML_INT8_MIN -128
100 #define ML_INT8_MAX 0x7F
103 #define _ML_INT8 MLint8
111 #define ML_UINT8_MIN 0x00
112 #define ML_UINT8_MAX 0xFF
115 #define _ML_UINT8 MLuint8
128 #define ML_INT16_MIN -32768
129 #define ML_INT16_MAX 0x7FFF
132 #define _ML_INT16 MLint16
145 #define ML_UINT16_MIN 0x0000
146 #define ML_UINT16_MAX 0xFFFF
149 #define _ML_UINT16 MLuint16
170 #define ML_INT32_MIN (static_cast<MLint32>(0x80000000L))
171 #define ML_INT32_MAX (static_cast<MLint32>(0x7FFFFFFFL))
174 #define _ML_INT32 MLint32
190 #define ML_UINT32_MIN (static_cast<MLuint32>(0x00000000L))
191 #define ML_UINT32_MAX (static_cast<MLuint32>(0xFFFFFFFFL))
194 #define _ML_UINT32 MLuint32
203 #define ML_FLOAT_MIN FLT_MIN
204 #define ML_FLOAT_MAX FLT_MAX
205 #define ML_FLOAT_EPSILON FLT_EPSILON
207 #define ML_FLOAT_DIG (FLT_DIG+2)
210 #define _ML_FLOAT MLfloat
219 #define ML_DOUBLE_MIN DBL_MIN
220 #define ML_DOUBLE_MAX DBL_MAX
221 #define ML_DOUBLE_EPSILON DBL_EPSILON
222 #define ML_DOUBLE_DIG DBL_DIG
225 #define _ML_DOUBLE MLdouble
234 #define ML_LDOUBLE_MIN LDBL_MIN
235 #define ML_LDOUBLE_MAX LDBL_MAX
236 #define ML_LDOUBLE_EPSILON LDBL_EPSILON
237 #define ML_LDOUBLE_DIG LDBL_DIG
240 #define _ML_LDOUBLE MLldouble
247 #define ML_NUM_STANDARD_TYPES 10
253 #define ML_MAX_COMPONENTS_EXTENDED_TYPE 512
260 #define ML_LUMINANCE "LUMINANCE"
262 #define ML_NEGATIVE "NEGATIVE"
264 #define ML_PALETTE "PALETTE"
271 #define ML_GREEN "GREEN"
273 #define ML_BLUE "BLUE"
275 #define ML_ALPHA "ALPHA"
278 #define ML_CYAN "CYAN"
280 #define ML_MAGENTA "MAGENTA"
282 #define ML_YELLOW "YELLOW"
284 #define ML_BLACK "BLACK"
289 #define ML_SATURATION "SATURATION"
291 #define ML_VALUE "VALUE"
293 #define ML_LIGHTNESS "LIGHTNESS"
296 #define ML_YIQ_Y "YIQ_Y"
298 #define ML_YIQ_I "YIQ_I"
300 #define ML_YIQ_Q "YIQ_Q"
305 #define ML_CIE_X "CIE_X"
307 #define ML_CIE_Y "CIE_Y"
309 #define ML_CIE_Z "CIE_Z"
311 #define ML_LUV_L "LUV_L"
313 #define ML_LUV_U "LUV_U"
315 #define ML_LUV_V "LUV_V"
318 #define ML_UNKNOWN "UNKNOWN"
328 #define ML_REAL "REAL_PART"
330 #define ML_IMAG "IMAG_PART"
346 #define ML_MAGNITUDE "MAGNITUDE"
348 #define ML_ANGLE "ANGLE"
363 #define ML_QUOTE_INTERNAL(A) #A
364 #define ML_QUOTE(A) ML_QUOTE_INTERNAL(A)
370 #define ML_LERP(a,l,h) ((l)+(((h)-(l))*(a)))
377 # define ML_M_PI 3.14159265358979323846
381 # define ML_M_PI_2 1.57079632679489661923
396 #ifndef ML_SYSTEM_HAS_NO_64
400 #include <ThirdPartyWarningsDisable.h>
402 #include <ThirdPartyWarningsRestore.h>
418 #define INT64_MIN 0x8000000000000000I64
421 #define INT64_MAX 0x7FFFFFFFFFFFFFFFI64
431 #define UINT64_MIN static_cast<MLuint64>(0)
434 #define UINT64_MAX 0xFFFFFFFFFFFFFFFFUI64
444 typedef unsigned long long MLuint64;
454 typedef unsigned char MLint64[8];
466 #define ML_INT64_MIN INT64_MIN
467 #define ML_INT64_MAX INT64_MAX
470 #define _ML_INT64 MLint64
476 #define ML_UINT64_MIN static_cast<MLuint64>(0)
477 #define ML_UINT64_MAX UINT64_MAX
480 #define _ML_UINT64 MLuint64
496 #define ML_INT_MIN ML_INT64_MIN
499 #define ML_INT_MAX ML_INT64_MAX
512 #define ML_UINT_MIN UINT64_MIN
515 #define ML_UINT_MAX UINT64_MAX
543 #define ML_USIZE_T_MIN ( static_cast<size_t>(0))
546 #define ML_USIZE_T_MAX (~static_cast<size_t>(0))
549 #define ML_SIZE_T_MIN ML_USIZE_T_MIN
552 #define ML_SIZE_T_MAX ML_USIZE_T_MAX
573 #define ML_SSIZE_T_MIN (static_cast<MLssize_t>(1) << (sizeof(MLssize_t)*8-1))
577 #define ML_SSIZE_T_MAX (static_cast<MLssize_t>(ML_USIZE_T_MAX ^ ML_SSIZE_T_MIN))
601 #define ML_UNDEFINED_THREADID 0
613 #define ML_INVALID_DATA_TYPE -1
721 #define ML_INVALID_ERROR_CODE static_cast<MLErrorCode>(-1)
724 #define ML_RESULT_OK static_cast<MLErrorCode>( 0)
730 #define ML_UNKNOWN_EXCEPTION static_cast<MLErrorCode>( 1)
735 #define ML_NO_MEMORY static_cast<MLErrorCode>( 2)
738 #define ML_DISCONNECTED_GRAPH static_cast<MLErrorCode>( 3)
742 #define ML_CYCLIC_GRAPH static_cast<MLErrorCode>( 4)
745 #define ML_BAD_OPERATOR_POINTER static_cast<MLErrorCode>( 5)
748 #define ML_BAD_OPERATOR_OUTPUT_INDEX static_cast<MLErrorCode>( 6)
751 #define ML_BAD_FIELD static_cast<MLErrorCode>( 7)
757 #define ML_IMAGE_DATA_CALCULATION_FAILED static_cast<MLErrorCode>( 8)
760 #define ML_NO_IMAGE_INPUT_EXTENSION static_cast<MLErrorCode>( 9)
768 #define ML_NO_IMAGE_PROPS static_cast<MLErrorCode>(10)
771 #define ML_BAD_OPERATOR_INPUT_INDEX static_cast<MLErrorCode>(11)
776 #define ML_BAD_INPUT_IMAGE_POINTER static_cast<MLErrorCode>(12)
782 #define ML_BAD_DATA_TYPE static_cast<MLErrorCode>(13)
788 #define ML_PROGRAMMING_ERROR static_cast<MLErrorCode>(14)
795 #define ML_EMPTY_MESSAGE static_cast<MLErrorCode>(15)
803 #define ML_PAGE_CALCULATION_ERROR_IN_MODULE static_cast<MLErrorCode>(16)
809 #define ML_PROPERTY_CALCULATION_ERROR_IN_MODULE static_cast<MLErrorCode>(17)
816 #define ML_INBOX_CALCULATION_ERROR_IN_MODULE static_cast<MLErrorCode>(18)
823 #define ML_BAD_PARAMETER static_cast<MLErrorCode>(19)
832 #define ML_CALCULATION_ERROR static_cast<MLErrorCode>(20)
835 #define ML_BAD_DIMENSION static_cast<MLErrorCode>(21)
849 #define ML_RECURSION_ERROR static_cast<MLErrorCode>(22)
856 #define ML_LIBRARY_LOAD_ERROR static_cast<MLErrorCode>(23)
860 #define ML_FILE_IO_ERROR static_cast<MLErrorCode>(24)
864 #define ML_AFTER_EFFECT static_cast<MLErrorCode>(25)
868 #define ML_BAD_INDEX static_cast<MLErrorCode>(26)
872 #define ML_OUT_OF_RANGE static_cast<MLErrorCode>(27)
877 #define ML_MISSING_VOXEL_TYPE_OPERATIONS static_cast<MLErrorCode>(28)
881 #define ML_BAD_FIELD_TYPE static_cast<MLErrorCode>(29)
884 #define ML_BAD_FIELD_POINTER_OR_NO_MEMORY static_cast<MLErrorCode>(30)
889 #define ML_FIELD_CREATION_ERROR_OR_NO_MEMORY static_cast<MLErrorCode>(31)
892 #define ML_TYPE_INITIALIZATION_ERROR static_cast<MLErrorCode>(32)
895 #define ML_CONSTRUCTOR_EXCEPTION static_cast<MLErrorCode>(33)
899 #define ML_DESTRUCTOR_EXCEPTION static_cast<MLErrorCode>(34)
902 #define ML_TABLE_FULL static_cast<MLErrorCode>(35)
906 #define ML_EXTERNAL_ERROR static_cast<MLErrorCode>(36)
910 #define ML_BAD_BASE_FIELD static_cast<MLErrorCode>(37)
914 #define ML_BAD_BASE_FIELD_CONTENT static_cast<MLErrorCode>(38)
921 #define ML_TYPE_NOT_REGISTERED static_cast<MLErrorCode>(39)
928 #define ML_LIBRARY_INIT_ERROR static_cast<MLErrorCode>(40)
933 #define ML_BAD_POINTER_OR_0 static_cast<MLErrorCode>(41)
938 #define ML_BAD_STATE static_cast<MLErrorCode>(42)
941 #define ML_TOO_MANY_PUSHES_OR_ADDS static_cast<MLErrorCode>(43)
944 #define ML_TOO_MANY_POPS_OR_REMOVES static_cast<MLErrorCode>(44)
947 #define ML_STACK_TABLE_OR_BUFFER_EMPTY static_cast<MLErrorCode>(45)
950 #define ML_STACK_TABLE_OR_BUFFER_NOT_EMPTY static_cast<MLErrorCode>(46)
953 #define ML_ELEMENT_NOT_FOUND static_cast<MLErrorCode>(47)
957 #define ML_INVALID_FILE_NAME static_cast<MLErrorCode>(48)
960 #define ML_INVALID_FILE_DESCRIPTOR static_cast<MLErrorCode>(49)
963 #define ML_FILE_NOT_OPEN static_cast<MLErrorCode>(50)
968 #define ML_NO_OR_INVALID_PERMISSIONS static_cast<MLErrorCode>(51)
972 #define ML_DISK_OR_RESSOURCE_FULL static_cast<MLErrorCode>(52)
979 #define ML_FILE_OR_DATA_STRUCTURE_CORRUPTED static_cast<MLErrorCode>(53)
983 #define ML_INVALID_VERSION static_cast<MLErrorCode>(54)
990 #define ML_UNKNOWN_OR_INVALID_COMPRESSION_SCHEME static_cast<MLErrorCode>(55)
997 #define ML_TYPE_ALREADY_REGISTERED static_cast<MLErrorCode>(56)
1001 #define ML_TYPE_IS_ABSTRACT static_cast<MLErrorCode>(57)
1005 #define ML_TYPE_NOT_DERIVED_FROM_EXPECTED_PARENT_CLASS static_cast<MLErrorCode>(58)
1008 #define ML_OPERATION_INTERRUPTED static_cast<MLErrorCode>(59)
1012 #define ML_BAD_PAGE_ID static_cast<MLErrorCode>(60)
1017 #define ML_OUT_OF_RESSOURCES static_cast<MLErrorCode>(61)
1020 #define ML_OBJECT_OR_FILE_EXISTS static_cast<MLErrorCode>(62)
1023 #define ML_OBJECT_OR_FILE_DOES_NOT_EXIST static_cast<MLErrorCode>(63)
1026 #define ML_DEADLOCK_WOULD_OCCURR static_cast<MLErrorCode>(64)
1031 #define ML_COULD_NOT_OPEN_FILE static_cast<MLErrorCode>(65)
1035 #define ML_COULD_NOT_CREATE_OPEN_OR_MODIFY_FILE ML_COULD_NOT_OPEN_FILE
1038 #define ML_LIBRARY_UNLOAD_ERROR static_cast<MLErrorCode>(66)
1041 #define ML_LIBRARY_UNLOAD_EXCEPTION static_cast<MLErrorCode>(67)
1044 #define ML_NOT_SUPPORTED_ON_THIS_SYSTEM static_cast<MLErrorCode>(68)
1047 #define ML_OBJECT_STILL_REFERENCED static_cast<MLErrorCode>(69)
1050 #define ML_REQUEST_OUTSIDE_OF_IMAGE static_cast<MLErrorCode>(70)
1053 #define MLNumDefaultErrorCodes static_cast<MLErrorCode>(71)
1176 const char* messStr,
1178 const char** infos);
1193 void* objectData1,
void* objData2);
1535 #define ML_CALC_FTYPE MLdouble
1542 #define ML_CALC_ITYPE MLint
1549 #define ML_TYPE_ASSIGN_FUNCTION_POINTERS() \
1550 getStringValue = MLTYPE_getStringValue; \
1551 setStringValue = MLTYPE_setStringValue; \
1552 setToMinimum = MLTYPE_setToMinimum; \
1553 setToMaximum = MLTYPE_setToMaximum; \
1554 setToDefault = MLTYPE_setToDefault; \
1555 getComponent = MLTYPE_getComponent; \
1556 setComponent = MLTYPE_setComponent; \
1557 copy = MLTYPE_copy; \
1558 arrayCopy = MLTYPE_arrayCopy; \
1559 arrayCopyWithStrides = MLTYPE_arrayCopyWithStrides; \
1560 arrayFill = MLTYPE_arrayFill; \
1562 castToBool = MLTYPE_castToBool; \
1563 castToInt = MLTYPE_castToInt; \
1564 castToDouble = MLTYPE_castToDouble; \
1565 castToOtherType = MLTYPE_castToOtherType; \
1566 castFromInt = MLTYPE_castFromInt; \
1567 castFromDouble = MLTYPE_castFromDouble; \
1568 castFromOtherType = MLTYPE_castFromOtherType; \
1570 isEqualToType = MLTYPE_isEqualToType; \
1571 isEqualToTypeWithEpsilon= MLTYPE_isEqualToTypeWithEpsilon;\
1573 negate = MLTYPE_negate; \
1574 normalize = MLTYPE_normalize; \
1576 arrayRescale = MLTYPE_arrayRescale; \
1577 interpolate = MLTYPE_interpolate; \
1578 arrayEqualsValue = MLTYPE_arrayEqualsValue; \
1579 arrayGetMinMax = MLTYPE_arrayGetMinMax; \
1581 multWithInt = MLTYPE_multWithInt; \
1582 multWithDouble = MLTYPE_multWithDouble; \
1583 multWithType = MLTYPE_multWithType; \
1584 multWithOtherType = MLTYPE_multWithOtherType; \
1586 plusInt = MLTYPE_plusInt; \
1587 plusDouble = MLTYPE_plusDouble; \
1588 plusType = MLTYPE_plusType;
MLint32 MLDataType
MLDataType.
MLDataTypeIds
MLDataType identifiers.
#define ML_MAX_COMPONENTS_EXTENDED_TYPE
Maximum number of components for extended types.
@ MLuint8Type
Enumerator for the unsigned 8-bit ML integer type.
@ MLuint32Type
Enumerator for the unsigned 32-bit ML integer type.
@ MLfloatType
Enumerator for the signed 32-bit ML floating point type.
@ MLuint16Type
Enumerator for the unsigned 16-bit ML integer type.
@ MLint64Type
Enumerator for the signed 64-bit ML integer type.
@ MLint16Type
Enumerator for the signed 16-bit ML integer type.
@ MLint32Type
Enumerator for the signed 32-bit ML integer type.
@ MLdoubleType
Enumerator for the signed 64-bit ML floating point type.
@ MLint8Type
Enumerator for the signed 8-bit ML integer type.
@ MLuint64Type
Enumerator for the unsigned 64-bit ML integer type.
MLint32 MLErrorCode
Type of an ML Error code.
MLCheckBits
Enumerator describing runtime and final checks in the ML.
@ ML_FINAL_RUNTIME_CHECK_BIT
Final checks in the RuntimeType system are activated.
@ ML_ALL_CHECKS_BITS
All available checks are activated.
@ ML_NO_CHECKS_BITS
All checks are deactivated.
MLNotifyChangedObjectType
Objects of the ML that call the registered functions when changed.
@ ML_NOTIFY_NO_OBJECT_TYPE
@ ML_NOTIFY_ERROR_OUTPUT_OTHER_CHANGES
@ ML_NOTIFY_ERROR_OUTPUT_TERMINATION_TYPE
@ ML_NOTIFY_HOST_MAX_NUM_THREADS
@ ML_NOTIFY_CACHE_MONITORING_LEVEL
@ ML_NOTIFY_ERROR_OUTPUT_MESSAGE_FILTER
@ ML_NOTIFY_ERROR_OUTPUT_FULL_DEBUGGING
@ ML_NOTIFY_MODULE_INSTANTIATED
@ ML_NOTIFY_API_EXCEPTIONS
@ ML_NOTIFY_HOST_USE_CLASSIC_HOST
@ ML_NOTIFY_ERROR_OUTPUT_ERROR_OUTPUT_CB
@ ML_NOTIFY_CACHE_MEM_OPT_LEVEL
@ ML_NOTIFY_RUNTIME_TYPE_ADDED
@ ML_NOTIFY_HOST_BREAK_CHECK_CB
@ ML_NOTIFY_API_CHECKS_BITS
@ ML_NOTIFY_MODULE_DELETED
@ ML_NOTIFY_CACHE_MAX_SIZE
@ ML_NOTIFY_RUNTIME_TYPE_REMOVED
@ ML_NOTIFY_FIELD_HANDLED
@ ML_NOTIFY_ERROR_OUTPUT_DEBUG_ENV_NAMES
@ ML_NOTIFY_HOST_PROGRESS_CB
MLuint64 MLTypePropertyBits
Structure to define a bit mask that identifies all implemented functions for a data type.
signed short * MLint16Ptr
MLTerminator
Termination types for error handling.
@ ML_EXITCODE
Terminates the application with exit(ErrorCode), not recommended for use in normal code.
@ ML_EXIT0
Terminates the application with exit(0), not recommended for use in normal code.
@ ML_ABORT
Uses abort() to terminate the application which supports easily to start the debugger.
@ ML_CONTINUE
Tries to ignore the message and to continue.
double(* MLDblFuncPtr)(double)
A function pointer type to a function that returns a double and takes a double as argument.
MLint32 MLApplicationGetInt32PropertyCB(void *applicationUsrData, const char *propertyName, MLint16 *found)
Callback to the hosting application that is used to get an integer value property with the propertyNa...
UINT64 MLuint64
Introduce platform-independent 64-bit unsigned integer type.
MLMemoryErrorHandling
Enumerator to specify memory error handling.
@ ML_FATAL_MEMORY_ERROR
On allocation failure, a fatal error print is done and NULL is returned.
@ ML_THROW_NO_MEMORY
On allocation failure, a throw(ML_NO_MEMORY) is executed.
@ ML_RETURN_NULL
On allocation failure, NULL is returned without error handling.
@ ML_FATAL_MEMORY_ERROR_AND_THROW_NO_MEMORY
On allocation failure, a fatal error is posted and ML_NO_MEMORY is thrown.
MLNotifyChangedClassType
Codes for ML classes that may change:
@ ML_NOTIFY_MODULE
0x0020 = Module
@ ML_NOTIFY_API
0x0002 = API
@ ML_NOTIFY_CACHE
0x0008 = Cache
@ ML_NOTIFY_NO_OBJECT
0x0000 = No object
@ ML_NOTIFY_HOST
0x0010 = Host
@ ML_NOTIFY_RUNTIME
0x0004 = Runtime
@ ML_NOTIFY_ERROR_OUTPUT
0x0001 = ErrorOutput
long double * MLldoublePtr
MLint MLsoffset
Signed ML offset type that is a 32-bit signed integer on 32-bit platforms and a 64-bit integer on 64-...
MLint64 * MLintPtr
A pointer to the signed ML integer type MLint.
UINT64 * MLuint64Ptr
Introduce platform-independent 64-bit unsigned integer pointer type.
MLint32 MLHostBreakCheckCB(void *usrData, void **hitField)
MLArrayIndex
Indexes for axes, arrays and vectors.
@ ML_VT
Array index for t (time) components (entry 4)
@ ML_VC
Array index for c (color) components (entry 3)
@ ML_VY
Array index for y components (entry 1)
@ ML_VU
Array index for u (unit/user dimension) components (entry 5)
@ ML_VZ
Array index for z components (entry 2)
@ ML_VW
Array index for w (for components of homogeneous vectors, entry 3)
@ ML_VX
Array index for x components (entry 0)
void MLRequestProgressCB(void *usrData, double progress)
MLuint64 MLuint
An unsigned ML integer type with at least 64 bits used for index calculations on very large images ev...
unsigned char * MLuint8Ptr
MLEventFilterApplicationMessage
Enum to describe the significance of the call, e.g., whether an 'add' or a 'remove' of a function is ...
@ ML_EVENTFILTER_REMOVE_CB
unsigned int * MLuint32Ptr
void MLEventFilterApplicationHookCB(void *applicationUsrData, MLEventFilterApplicationMessage type, MLEventFilterCB *cb, void *usrData, MLuint32 fromMessageId, MLuint32 toMessageId)
Internal application event filter callback type.
unsigned char MLTypeData
This is the pointer type used to point to the data of MLType data instances.
MLTypeGroupIds
Some predefined type groups.
void MLSensorCB(void *usrData, void *sensor)
INT64 MLint64
Include 64-bit integer support for Windows or Unix.
const char * MLApplicationGetStringPropertyCB(void *applicationUsrData, const char *propertyName, MLint16 *found)
Callback to the hosting application that is used to get a string value property with the propertyName...
unsigned short * MLuint16Ptr
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...
double MLApplicationGetDoublePropertyCB(void *applicationUsrData, const char *propertyName, MLint16 *found)
Callback to the hosting application that is used to get a double value property with the propertyName...
void MLMessageCB(void *usrData, MLErrorCode errCode, MLMessageType messageType, const char *messStr, int line, const char **infos)
Handling/setting/getting of ML messages callbacks.
MLint32 MLApplicationGetBoolPropertyCB(void *applicationUsrData, const char *propertyName, MLint16 *found)
Callback to the hosting application that is used to get a bool value property with the propertyName f...
MLuint64 MLuoffset
Unsigned ML offset type that is a 32-bit unsigned integer on 32-bit platforms and 64-bit one on 64-bi...
void MLNotifyCB(MLuint32 objType, void *usrData, void *objectData1, void *objData2)
Function type that is registered by the Notify object; it receives a code objType of type MLNotifyCha...
MLint32 MLEventFilterCB(void *usrData, void *event)
Callback function type for events that are passed to the user.
SSIZE_T MLssize_t
The signed ML size type that is a signed 32-bit size_t on 32-bit platforms and 64-bit one on 64-bit p...
INT64 * MLint64Ptr
Introduce platform-independent 64-bit signed integer pointer type.
size_t MLusize_t
The unsigned ML size type that is an unsigned 32-bit size_t on 32-bit platforms and 64-bit one on 64-...
void MLHostProgressCB(void *usrData, const char *info1, const char *info2)
MLuint64 * MLuintPtr
A pointer to the unsigned ML integer type MLuint.
MLint32 MLTypeGroup
This is an identifier to differentiate types like matrices, vectors, and complex/quaternion types,...
MLMessageType
Message types handled by the ErrorOutput class.
MLSign
Definition of possible signs as enumerator.
@ ML_NEGATIVE_SIGN
Negative sign enumerator.
@ ML_ZERO_SIGN
Enumerator for no negative and no positive sign (=0).
@ ML_POSITIVE_SIGN
Positive sign enumerator.
boost::graph_traits< ml_graph_ptr >::vertex_descriptor source(graph_traits< ml_graph_ptr >::edge_descriptor e, const ml_graph_ptr)
Returns the vertex descriptor for u of the edge (u,v) represented by e.
void ML_UTILS_EXPORT logTypeComponentsFromStringError(const char *function)
Defines all callbacks that an application has to support for property access.
MLApplicationGetDoublePropertyCB * _getDoubleCB
Callback to be set by an application to return a double property.
MLApplicationGetBoolPropertyCB * _getBoolCB
Callback to be set by an application to return a boolean property.
MLApplicationGetStringPropertyCB * _getStringCB
Callback to be set by an application to return a string property.
MLApplicationGetInt32PropertyCB * _getInt32CB
Callback to be set by an application to return a int32 property.
void * _applicationUsrData
Defines the user data that is supplied with all callbacks.
Structure containing all data type features and pointers to all functions needed to implement operati...
void(* Function_CastToOtherType)(const MLTypeData *myData, const MLTypeInfos *otherInfos, MLTypeData *otherData)
Function_CastFromDouble castFromDouble
Casts the first (the double) parameter to the data type and returns it into second parameter.
Function_GetStringValue getStringValue
Returns a value as a string.
bool(* Function_CastToBool)(const MLTypeData *p)
void(* Function_ArrayCopyWithStrides)(const MLTypeData *source, MLssize_t sourceStride, MLTypeData *dest, MLssize_t destStride, size_t size)
Function_IsEqualToType isEqualToType
Returns true if both parameters are equal; otherwise, it returns false.
Function_ArrayFill arrayFill
Sets the first parameter to array at the second one.
const MLTypeData * typeDefaultPtr
Data type default specified by derived class.
Function_ArrayCopyWithStrides arrayCopyWithStrides
Same as arrayCopy, but allows to specify stride values for source and destination.
MLint(* Function_CastToInt)(const MLTypeData *p)
void(* Function_CastFromInt)(MLint value, MLTypeData *result)
Function_SetStringValue setStringValue
Try to convert string as far as possible. If string cannot be scanned at all, then use the data type ...
Function_CopyValue normalize
Normalizes the type value from parameter 1 and writes it into parameter 2.
void(* Function_SetStringValue)(const char *str, MLTypeData *result)
bool(* Function_IsEqualToTypeWithEpsilon)(const MLTypeData *source1, const MLTypeData *source2, MLdouble epsilon)
MLTypeGroup typeGroup
Type group to which this type belongs.
void(* Function_ArrayCopy)(const MLTypeData *source, MLTypeData *dest, size_t size)
Function_ApplyIntOperation multWithInt
Implements multiplication with integer. Result is written into parameter three.
size_t componentOffsets[ML_MAX_COMPONENTS_EXTENDED_TYPE]
Array of offsets from the first to other components to address any component directly.
void(* Function_ArrayFill)(const MLTypeData *fillValue, MLTypeData *dest, size_t size)
Function_SetTo setToMaximum
Sets the value to minimum value. Must be implemented.
Function_ArrayCopy arrayCopy
Copies the number of elements of the first parameter to the second one.
Function_SetTo setToDefault
Sets the value to default value. Must be implemented.
Function_GetComponent getComponent
Returns the n-th component of the type as double.
Function_CopyValue copy
Copies the first parameter to the second one.
const MLTypeData * typeMinPtr
Data type minimum specified by derived class.
Function_ApplyIntOperation plusInt
Implements integer addition to parameter one. Result is written into parameter three.
void(* Function_SetComponent)(MLTypeData *dest, size_t componentIndex, MLdouble value)
void(* Function_CastFromDouble)(MLdouble value, MLTypeData *result)
void(* Function_SetTo)(MLTypeData *dest)
void(* Function_Interpolate)(const MLTypeData *source1, const MLTypeData *source2, MLdouble alpha, MLTypeData *result)
void(* Function_ApplyDoubleOperation)(const MLTypeData *source, MLdouble value, MLTypeData *result)
const MLTypeData * typeMaxPtr
Data type maximum specified by derived class.
void(* Function_ApplyIntOperation)(const MLTypeData *source, MLint value, MLTypeData *result)
const char * structInfoString
Pointer to a NULL-terminated string describing the type configuration.
Function_ArrayEqualsValue arrayEqualsValue
Checks whether the first argument equals all the values given with the second argument (and the size ...
bool(* Function_IsEqualToType)(const MLTypeData *source1, const MLTypeData *source2)
MLdouble(* Function_GetComponent)(const MLTypeData *source, size_t componentIndex)
Function_CastToDouble castToDouble
Returns a type value cast to double.
void(* Function_MultWithOtherType)(const MLTypeInfos *myInfos, const MLTypeData *myData, const MLTypeData *otherData, MLTypeData *result)
Function_CopyValue negate
Negates the value.
MLint32 dataTypeId
Real MLDataType id of under which these operations are registered as data type.
void(* Function_CopyValue)(const MLTypeData *source, MLTypeData *dest)
void(* Function_CastFromOtherType)(const MLTypeInfos *myInfos, const MLTypeData *myData, MLTypeData *otherData)
Function_ApplyOperation plusType
Implements parameter two addition to parameter one. Result is written into parameter three.
Function_ApplyOperation multWithType
Implements multiplication with its own type. Result is written into parameter three.
size_t numGoodCastTos
Number of datatypes to which this type can be cast without information or functionality loss.
MLDataType rangeAndPrecisionEquivalent
Standard data type which has a comparable range and precision behavior.
Function_ApplyDoubleOperation plusDouble
Implements double addition to parameter one. Result is written into parameter three.
size_t typeSize
sizeof the data type in bytes.
Function_CastToOtherType castToOtherType
Casts data to another registered type.
Function_ArrayRescale arrayRescale
Scales the values from the first parameter with the second parameter and offsets it with the value fr...
char *(* Function_GetStringValue)(const MLTypeData *p)
MLdouble dblMin
double minimum of data type if it exists.
Function_IsEqualToTypeWithEpsilon isEqualToTypeWithEpsilon
Returns true if both parameters are equal within a static epsilon; otherwise, it returns false.
void(* Function_ApplyOperation)(const MLTypeData *source1, const MLTypeData *source2, MLTypeData *result)
void(* Function_ArrayRescale)(const MLTypeData *source, MLdouble scaleFactor, const MLTypeData *offset, MLTypeData *dest, size_t size)
const char * name
Pointer to the data type name.
Function_ApplyDoubleOperation multWithDouble
Implements multiplication with double. Result is written into parameter three.
Function_ArrayGetMinMax arrayGetMinMax
Returns the minimum and maximum component values from the array in the first argument,...
bool(* Function_ArrayEqualsValue)(const MLTypeData *value, const MLTypeData *buffer, size_t size)
Function_CastFromOtherType castFromOtherType
Casts another registered type to data.
Function_CastToBool castToBool
Returns a type value cast to bool. Usually an equality to 0 should return false, e....
MLdouble dblMax
double maximum of data type if it exists.
Function_SetTo setToMinimum
Sets the value to minimum value. Must be implemented.
Function_CastToInt castToInt
Returns a type value cast to integer.
Function_SetComponent setComponent
Sets the n-th component of the type from double (applying rounding if needed).
void(* Function_ArrayGetMinMax)(const MLTypeData *source, size_t size, MLdouble &min, MLdouble &max)
const char ** goodCastTos
Data types names to which this type can be cast without information or functionality loss.
Function_CastFromInt castFromInt
Casts the first (the integer) parameter to the data type and returns it into second parameter.
MLdouble(* Function_CastToDouble)(const MLTypeData *p)
size_t numComponents
Number of components of this data type. Equals number of characters in *structInfoString.
Function_Interpolate interpolate
Interpolates linearly between the first and the second parameter, at the position given by the third ...
MLTypePropertyBits propertyBits
Variable containing an enabled bit for each defined property.
Function_MultWithOtherType multWithOtherType
Implements multiplication with another type. Result is written into parameter three.