Kanzi  3.9.7
Kanzi Engine API
expression_binding_processor.hpp File Reference

Classes

struct  kanzi::BindingExpressionOpCode
 Expression binding operation. More...
 
struct  kanzi::BindingExpressionOpCodeParameters
 Runtime Parameters for binding expression opcodes. More...
 
class  kanzi::ExpressionBindingProcessor
 Expression binding processor. More...
 

Namespaces

 kanzi
 Easing functions that require external dependencies for calculation.
 

Typedefs

typedef bool(* kanzi::BindingExpressionFunction) (BindingExpressionOpCodeParameters &params)
 Expression function pointer type. More...
 
typedef shared_ptr< ExpressionBindingProcessor > kanzi::ExpressionBindingProcessorSharedPtr
 Expression binding processor shared pointer type. More...
 

Enumerations

enum  kanzi::BindingExpressionArgumentType : int16_t {
  kanzi::BindingExpressionArgumentTypeTemporaryRegister0, kanzi::BindingExpressionArgumentTypeTemporaryRegister1, kanzi::BindingExpressionArgumentTypeTemporaryRegister2, kanzi::BindingExpressionArgumentTypeTemporaryRegister3,
  kanzi::BindingExpressionArgumentTypeTemporaryRegister4, kanzi::BindingExpressionArgumentTypeTemporaryRegister5, kanzi::BindingExpressionArgumentTypeTemporaryRegister6, kanzi::BindingExpressionArgumentTypeConstantRegister0,
  kanzi::BindingExpressionArgumentTypeConstantRegister1, kanzi::BindingExpressionArgumentTypeConstantRegister2, kanzi::BindingExpressionArgumentTypeConstantRegister3, kanzi::BindingExpressionArgumentTypeConstantRegister4,
  kanzi::BindingExpressionArgumentTypeConstantRegister5, kanzi::BindingExpressionArgumentTypeConstantRegister6, kanzi::BindingExpressionArgumentTypeSourceRegister0, kanzi::BindingExpressionArgumentTypeSourceRegister1,
  kanzi::BindingExpressionArgumentTypeSourceRegister2, kanzi::BindingExpressionArgumentTypeSourceRegister3, kanzi::BindingExpressionArgumentTypeSourceRegister4, kanzi::BindingExpressionArgumentTypeSourceRegister5,
  kanzi::BindingExpressionArgumentTypeSourceRegister6, kanzi::BindingExpressionArgumentTypeDataSourceRegister0, kanzi::BindingExpressionArgumentTypeDataSourceRegister1, kanzi::BindingExpressionArgumentTypeDataSourceRegister2,
  kanzi::BindingExpressionArgumentTypeDataSourceRegister3, kanzi::BindingExpressionArgumentTypeDataSourceRegister4, kanzi::BindingExpressionArgumentTypeDataSourceRegister5, kanzi::BindingExpressionArgumentTypeDataSourceRegister6
}
 Runtime expression validator argument type. More...
 
enum  kanzi::KzuExpressionValidatorBinaryArgumentType {
  kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_SOURCE, kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_TARGET, kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_SOURCE_REGISTER_0, kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_CONSTANT_REGISTER_0,
  kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_TEMPORARY_REGISTER_0, kanzi::KZU_EXPRESSION_VALIDATOR_ARGUMENT_TYPE_DATA_SOURCE_REGISTER_0
}
 Expression argument type from binary data. More...
 
enum  kanzi::KzuExpressionValidatorOperation : int16_t {
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_WRITE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ADD, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SUBTRACT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_MULTIPLY,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_DIVIDE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_MODULO, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ABS, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_MIN,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_MAX, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CEIL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_FLOOR, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ROUND,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_POW, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SQRT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_STEP, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_BOOL,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_INT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_FLOAT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_STRING, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_REMAINDER,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_ROTATION, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_ROTATION_X, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_ROTATION_Y, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_ROTATION_Z,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ROTATE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ROTATE_X, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ROTATE_Y, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ROTATE_Z,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_EXTRACT_EULER_X, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_EXTRACT_EULER_Y, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_EXTRACT_EULER_Z, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_CURRENT_VALUE,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ACQUIRE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_GREATER, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_GREATER_OR_EQUAL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_LESS,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_LESS_OR_EQUAL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_EQUAL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COMPARE_NOT_EQUAL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LOGICAL_AND,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LOGICAL_OR, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LOGICAL_NOT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_MATRIX3x3, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_MATRIX4x4,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_SRT2D, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_SRT3D, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SIN, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_COS,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TAN, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ASIN, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ACOS, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ATAN,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ATAN2, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SINC, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_DOT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CROSS,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_INVERSE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_FIELD, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SET_FIELD, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TRANSFORM,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CLAMP, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_MIX, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LINEARSTEP, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SMOOTHSTEP,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SMOOTHERSTEP, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_PROJECTION_CAMERA_WORLD_MATRIX, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_CAMERA_WORLD_MATRIX, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_WORLD_MATRIX,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_NORMAL_MATRIX, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_CAMERA_POSITION, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_AMBIENT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TERNARY_CONDITIONAL,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LINEAR_TO_SRGB, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SRGB_TO_LINEAR, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TRANSPOSE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PREMULTIPLY_COLOR,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_VIEW_POSITION, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SPLIT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_EVALUATE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_ITERATOR,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CREATE_VIEW, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_COLOR4, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_VECTOR2, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_VECTOR3,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TO_VECTOR4, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_WIDTH, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_HEIGHT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_SIZE,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_PIXEL_FORMAT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_ADDRESSING_MODE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_DEPTH_COMPARE_FUNCTION, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_FILTER_MODE,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_MIPMAP_MODE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_ANISOTROPY_LEVEL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_TEXTURE_GET_MULTISAMPLE_LEVEL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_NOT,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_AND, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_OR, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_XOR, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_LEFT_SHIFT,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_BITWISE_RIGHT_SHIFT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_HSL_TO_SRGB, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SRGB_TO_HSL, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SIGN,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LENGTH, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_NORMALIZE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_ROW, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SET_ROW,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_COLUMN, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_SET_COLUMN, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_CONTINUE_IF, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_GET_CAMERA_NORMAL_MATRIX,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_STRING_FORMAT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_APPEND_RANGE, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_POSITION_CONSTRAINT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_ORIENTATION_CONSTRAINT,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_LOOK_AT_CONSTRAINT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_REVERSED_LOOK_AT_CONSTRAINT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_REVERSED_CYLINDRICAL_LOOK_AT_CONSTRAINT, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PROCESSOR,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PROCESSOR_0, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PROCESSOR_1, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PROCESSOR_2, kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_PROCESSOR_3,
  kanzi::KZU_EXPRESSION_VALIDATOR_OPERATION_INVALID
}
 Expression operation. More...
 
enum  kanzi::KzuPropertyBinaryTargetAttribute {
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_TRANSLATION_X, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_TRANSLATION_Y, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_TRANSLATION_Z, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_SCALE_X,
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_SCALE_Y, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_SCALE_Z, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_ROTATION_Z, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_ROTATION_Y,
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_ROTATION_X, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_WHOLE_PROPERTY, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_COLOR_R, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_COLOR_G,
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_COLOR_B, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_COLOR_A, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_VECTOR_X, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_VECTOR_Y,
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_VECTOR_Z, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_VECTOR_W, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_SCALE, kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_ROTATION,
  kanzi::KZU_PROPERTY_BINARY_TARGET_ATTRIBUTE_TRANSLATION
}
 Binding property field (binary file). More...
 

Functions

int kanzi::bindingExpressionDivide (int lhs, int rhs)
 Integer divide the expression way. More...
 
float kanzi::bindingExpressionDivide (float lhs, float rhs)
 Floating point divide the expression way. More...
 
ColorRGBA kanzi::bindingExpressionDivide (const ColorRGBA &lhs, const ColorRGBA &rhs)
 Color divide the expression way. More...
 
Vector2 kanzi::bindingExpressionDivide (const Vector2 &lhs, const Vector2 &rhs)
 Vector2 divide the expression way. More...
 
Vector3 kanzi::bindingExpressionDivide (const Vector3 &lhs, const Vector3 &rhs)
 Vector3 divide the expression way. More...
 
Vector4 kanzi::bindingExpressionDivide (const Vector4 &lhs, const Vector4 &rhs)
 Vector4 divide the expression way. More...
 
BindingExpressionFunction kanzi::bindingExpressionFunctionFromOperation (KzuExpressionValidatorOperation operation)
 Converts expression validation operation to a binding expression function. More...
 
int kanzi::bindingExpressionModulo (int lhs, int rhs)
 Integer modulo the expression way. More...
 
float kanzi::bindingExpressionModulo (float lhs, float rhs)
 Floating point modulo the expression way. More...
 
ColorRGBA kanzi::bindingExpressionModulo (const ColorRGBA &lhs, const ColorRGBA &rhs)
 Color modulo the expression way. More...
 
Vector2 kanzi::bindingExpressionModulo (const Vector2 &lhs, const Vector2 &rhs)
 Vector2 modulo the expression way. More...
 
Vector3 kanzi::bindingExpressionModulo (const Vector3 &lhs, const Vector3 &rhs)
 Vector3 modulo the expression way. More...
 
Vector4 kanzi::bindingExpressionModulo (const Vector4 &lhs, const Vector4 &rhs)
 Vector4 modulo the expression way. More...
 
int kanzi::bindingExpressionRemainder (int lhs, int rhs)
 Integer remainder the expression way. More...
 
float kanzi::bindingExpressionRemainder (float lhs, float rhs)
 Floating point remainder the expression way. More...
 
ColorRGBA kanzi::bindingExpressionRemainder (const ColorRGBA &lhs, const ColorRGBA &rhs)
 Color remainder the expression way. More...
 
Vector2 kanzi::bindingExpressionRemainder (const Vector2 &lhs, const Vector2 &rhs)
 Vector2 remainder the expression way. More...
 
Vector3 kanzi::bindingExpressionRemainder (const Vector3 &lhs, const Vector3 &rhs)
 Vector3 remainder the expression way. More...
 
Vector4 kanzi::bindingExpressionRemainder (const Vector4 &lhs, const Vector4 &rhs)
 Vector4 remainder the expression way. More...
 
ColorRGBA kanzi::bindingFixedOperationGetAmbient (Node &node, const Material &material)
 Fixed operation to acquire ambient color. More...
 
Matrix4x4 kanzi::bindingFixedOperationGetCameraNormalMatrix (RenderPass &renderPass, Node &node)
 Fixed operation to acquire camera normal matrix. More...
 
Vector3 kanzi::bindingFixedOperationGetCameraPosition (RenderPass &renderPass)
 Fixed operation to acquire camera position vector. More...
 
Matrix4x4 kanzi::bindingFixedOperationGetCameraWorldMatrix (RenderPass &renderPass, Node &node)
 Fixed operation to acquire camera world matrix. More...
 
Matrix4x4 kanzi::bindingFixedOperationGetNormalMatrix (Node &node)
 Fixed operation to acquire normal matrix. More...
 
Matrix4x4 kanzi::bindingFixedOperationGetProjectionCameraWorldMatrix (RenderPass &renderPass, Node &node)
 Fixed operation to acquire projection camera world matrix. More...
 
Vector4 kanzi::bindingFixedOperationGetViewPosition (RenderPass &renderPass)
 Fixed operation to acquire homogeneous view position vector. More...
 
Matrix4x4 kanzi::bindingFixedOperationGetWorldMatrix (Node &node)
 Fixed operation to acquire world matrix. More...
 
bool kanzi::expressionOperationWrite (BindingExpressionOpCodeParameters &params)
 Execute write operation. More...
 
void kanzi::extractExpressionField (Variant &outputRegister, const Variant &inputRegister, PropertyField field)
 Reads a field from an input register and writes it to the output register. More...
 
string kanzi::getExpressionOperationName (KzuExpressionValidatorOperation operation)
 Gets a string representation of an expression validator operator. More...
 
Quaternion kanzi::getQuaternionField (const Variant &variant, PropertyField field)
 Gets a quaternion field from a variant. More...
 
bool kanzi::isFixedOperationOpCode (KzuExpressionValidatorOperation opCode)
 Tells if given operation code corresponds with a fixed operation. More...
 
PropertyField kanzi::propertyFieldFromBinaryTargetAttribute (KzuPropertyBinaryTargetAttribute attribute)
 Converts a property target attribute from binary into a property field. More...
 

Variables

static constexpr uint16_t kanzi::s_expressionValidatorBaseValueEngineInternal
 Expression operations from this index upwards are internal to Kanzi Engine. More...
 
static constexpr uint16_t kanzi::s_expressionValidatorBaseValueProcessorInternal
 Binding processor operations from this index upwards are special cases in Kanzi Engine. More...