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_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
}
 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

BindingExpressionFunction kanzi::bindingExpressionFunctionFromOperation (KzuExpressionValidatorOperation operation)
 Converts expression validation operation to binding expression function. More...
 
ColorRGBA kanzi::bindingFixedOperationGetAmbient (Node &node, const Material &material)
 Fixed operation to acquire ambient color. 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...
 
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...