Core
Namespaces
| Name |
|---|
| Core::Builder |
Classes
| Name | |
|---|---|
| class | Core::Camera <br>Camera has following outputs 0 -> screen output 1 -> proj * view matrix output 2 -> mul output. |
| struct | Core::CameraCoordSystem |
| class | Core::Cycle |
| class | Core::Data <br>Representation of the interconnection wire value (Shared piece of memory - union of all data types passed along the wire) and of the value stored in the defaultValues map (such as fovy for Perspective) |
| class | Core::DataMap <br>In column-major order. |
| class | Core::GraphManager <br>You must manage GraphManager lifecycle. |
| struct | Core::HalfspaceSign |
| class | Core::IdGenerator |
| class | Core::ManagedResource <br>Base class for objects that are the actual data managed by a ResourceManager. |
| class | Core::MatrixTracker <br>The main tracking object, responsible for tracking a single chain of sequences. |
| class | Core::Mesh <br>Mesh represents a complete 3D model. |
| class | Core::Model |
| class | Core::ModelResourceFiles <br>A set a of 3D file format files located somewhere in the filesystem. |
| class | Core::Node <br>Base class interface for all boxes. |
| class | Core::NodeTree <br>Container representing a tree of nodes connected together using a particular type of connections. |
| struct | Core::Operation <br>Description of each graph node (operation enum, default label, input and output pin names and types) |
| class | Core::Operator <br>Implementation of Node class. |
| class | Core::Pin <br>Pin used for connecting nodes. |
| class | Core::PreorderNodeTreeIterator |
| class | Core::Resource <br>Object holding information about a resource. |
| class | Core::ResourceFiles <br>A collection of file paths in the filesystem that are together required to load a single resource like a model. |
| class | Core::ResourceManager <br>Resource manager for loading resources from the filesystem. |
| class | Core::Screen |
| struct | Core::ScreenData |
| class | Core::Sequence <br>Sequence of matrices. |
| class | Core::SequenceTree <br>Iterable node tree container using the SequenceTreeIterator. |
| class | Core::SequenceTreeIterator <br>Preorder iterator over a subtree of sequences and models connected using matrix multiplication connections. |
| struct | Core::SetValueResult |
| struct | Core::TrackedModelData <br>Data object holding extra information about a currently tracked model. |
| struct | Core::TrackedNodeData <br>Tracking data for individual nodes involved in a tracking operation. |
| class | Core::Transform |
| class | Core::TransformChain <br>Iterable object representing a single chain of connected sequence nodes and their transform contents. |
| class | Core::TransformImpl |
| class | Core::TransformImpl< ETransformType::AxisAngle > |
| class | Core::TransformImpl< ETransformType::EulerX > |
| class | Core::TransformImpl< ETransformType::EulerY > |
| class | Core::TransformImpl< ETransformType::EulerZ > |
| class | Core::TransformImpl< ETransformType::Free > |
| class | Core::TransformImpl< ETransformType::Frustum > |
| class | Core::TransformImpl< ETransformType::LookAt > <br>Same as perspective projection node, but all values are locked. |
| class | Core::TransformImpl< ETransformType::Ortho > |
| class | Core::TransformImpl< ETransformType::Perspective > |
| class | Core::TransformImpl< ETransformType::Quat > <br>Quaternion class Quaternion represents the matrix, crated from quaternion. |
| class | Core::TransformImpl< ETransformType::Scale > |
| class | Core::TransformImpl< ETransformType::Translation > |
| class | Core::TransformImpl< ETransformType::Viewport > |
| struct | Core::TransformInfo <br>Data container for TransformChainIterator traversal metadata. |
| struct | Core::TransformOperation <br>Extends Operation - adds properties to transform nodes. |
Types
| Name | |
|---|---|
| enum class | ClipRange { MinusOneToOne, OneToMinusOne, ZeroToOne, ZeroToMinusOne} |
| enum class | DepthRange { ZeroToOne} |
| enum class | ENodePlugResult { Ok = 0, Err_MismatchedPinTypes, Err_MismatchedPinKind, Err_Loopback, Err_NonexistentPin, Err_Loop, Err_DisabledPin} |
| enum class | EOperatorType { Inversion, Transpose, Determinant, MatrixMulMatrix, MatrixAddMatrix, MatrixMulVector, VectorMulMatrix, MatrixMulFloat, VectorDotVector, VectorAddVector, VectorSubVector, VectorMulFloat, VectorPerspectiveDivision, NormalizeVector, MixVector, Vector3CrossVector3, Vector3DotVector3, Vector3AddVector3, Vector3SubVector3, Vector3MulFloat, NormalizeVector3, Vector3Length, ShowVector3, MixVector3, ConjQuat, FloatVecToQuat, AngleAxisToQuat, VecVecToQuat, QuatToFloatVec, QuatToAngleAxis, QuatToEuler, EulerToQuat, QuatInverse, QuatSlerp, QuatLongWaySlerp, QuatLerp, FloatMulQuat, QuatMulQuat, QuatVecConjQuat, QuatLength, ClampFloat, FloatMulFloat, FloatDivFloat, FloatAddFloat, FloatPowFloat, MixFloat, FloatSinCos, ASinACos, Signum, MatrixToVectors, Vectors3ToMatrix, VectorsToMatrix, MatrixToFloats, FloatsToMatrix, MatrixToTR, TRToMatrix, MatrixToQuat, QuatToMatrix, VectorToFloats, FloatsToVector, Vector3ToFloats, FloatsToVector3, VectorToVector3, Vector3ToVector, QuatToFloats, FloatsToQuat, NormalizeQuat, FloatToFloat, Vector3ToVector3, Vector4ToVector4, MatrixToMatrix, QuatToQuat, PulseToPulse, MakeTranslation, MakeEulerX, MakeEulerY, MakeEulerZ, MakeScale, MakeAxisAngle, MakeOrtho, MakePerspective, MakeFrustum, MakeLookAt, MakeViewport} |
| enum class | ETransformType { Free = 0, Translation, EulerX, EulerY, EulerZ, Scale, AxisAngle, Quat, Ortho, Perspective, Frustum, LookAt, Viewport} |
| enum class | EValueState { Editable = 0x0002, EditableSyn = 0x0003, Locked = 0x0000, LockedSyn = 0x0001}<br>Float value editable status: b1, b2 - b1 is editable bit, b2 is synergies bit. |
| enum class | EValueType { Pulse = 0, Float, Vec3, Vec4, Matrix, Quat, MatrixMul, Screen, Ptr}<br>An operator value type = type of the interconnection wire. |
| enum class | ResourceType { Model, Shader, Texture} |
| enum class | TrackingDirection { LeftToRight = -1, RightToLeft = 1} |
| enum class | TransformSpace { Model, View, Projection, Screen} |
| using Ptr< Camera > | CameraPtr |
| using GraphManager | gm |
| typedef std::int64_t | ID |
| using std::vector< Ptr< Transform > > | Matrices |
| using std::vector< EValueType > | PinGroup |
| using std::vector< std::string > | PinNames |
| using std::bitset< 16 > | TransformMask <br>ROW ORDER flags, if the mat4x4 values are editable (i.e., each single value may be changed by the mouse drag or not) |
| using std::array< int8_t, 16 > | ValueMask <br>Array of possible value codes for each matrix element: -1, 0, 1, ANY. |
Functions
| Name | |
|---|---|
| bool | canEditValue(EValueState valueState) |
| FORCE_INLINE glm::mat4 | getMatProduct(const std::vector< Ptr< Transform > > & matrices) |
| FORCE_INLINE const Operation * | getOperationProps(EOperatorType type) |
| FORCE_INLINE const TransformOperation::ValueMap & | getTransformDefaults(const std::string & keyWord) |
| FORCE_INLINE const TransformMask & | getTransformMap(const std::string & keyWord) |
| std::optional< TransformOperation * > | getTransformOperation(const std::string & keyWord) |
| FORCE_INLINE const TransformOperation & | getTransformOperation(ETransformType type) |
| bool | isViewportValid(const glm::mat4 & mat) |
| template <typename T ,glm::precision P> <br>GLM_FUNC_DECL glm::tquat< T, P > | longWaySlerp(glm::tquat< T, P > const & x, glm::tquat< T, P > const & y, T a)<br>PF: Long way version of Spherical linear interpolation of two quaternions. |
| template <typename T ,glm::precision P> <br>GLM_FUNC_QUALIFIER glm::tquat< T, P > | longWaySlerp(glm::tquat< T, P > const & x, glm::tquat< T, P > const & y, T a)<br>PF: Long way version of Spherical linear interpolation of two quaternions. |
| const PinNames | matrixIndexNames() |
| bool | validateValue(const ValueMask & mask, glm::ivec2 coords, float value)<br>Check single element in the matrix, if it is in the allowed range. |
| bool | validateValues(const ValueMask & mask, const glm::mat4 & matrix)<br>Check if all matrix elements are in the allowed range. |
Attributes
Types Documentation
enum ClipRange
| Enumerator | Value | Description |
|---|---|---|
| MinusOneToOne | ||
| OneToMinusOne | ||
| ZeroToOne | ||
| ZeroToMinusOne |
enum DepthRange
| Enumerator | Value | Description |
|---|---|---|
| ZeroToOne |
enum ENodePlugResult
| Enumerator | Value | Description |
|---|---|---|
| Ok | 0 | |
| Err_MismatchedPinTypes | ||
| Err_MismatchedPinKind | ||
| Err_Loopback | ||
| Err_NonexistentPin | Same nodes. | |
| Err_Loop | ||
| Err_DisabledPin |
enum EOperatorType
| Enumerator | Value | Description |
|---|---|---|
| Inversion | ||
| Transpose | ||
| Determinant | ||
| MatrixMulMatrix | ||
| MatrixAddMatrix | ||
| MatrixMulVector | ||
| VectorMulMatrix | ||
| MatrixMulFloat | ||
| VectorDotVector | ||
| VectorAddVector | ||
| VectorSubVector | ||
| VectorMulFloat | ||
| VectorPerspectiveDivision | ||
| NormalizeVector | ||
| MixVector | ||
| Vector3CrossVector3 | ||
| Vector3DotVector3 | ||
| Vector3AddVector3 | ||
| Vector3SubVector3 | ||
| Vector3MulFloat | ||
| NormalizeVector3 | ||
| Vector3Length | ||
| ShowVector3 | ||
| MixVector3 | ||
| ConjQuat | ||
| FloatVecToQuat | ||
| AngleAxisToQuat | ||
| VecVecToQuat | ||
| QuatToFloatVec | ||
| QuatToAngleAxis | ||
| QuatToEuler | ||
| EulerToQuat | ||
| QuatInverse | ||
| QuatSlerp | ||
| QuatLongWaySlerp | ||
| QuatLerp | ||
| FloatMulQuat | ||
| QuatMulQuat | ||
| QuatVecConjQuat | ||
| QuatLength | ||
| ClampFloat | ||
| FloatMulFloat | ||
| FloatDivFloat | ||
| FloatAddFloat | ||
| FloatPowFloat | ||
| MixFloat | ||
| FloatSinCos | ||
| ASinACos | ||
| Signum | ||
| MatrixToVectors | ||
| Vectors3ToMatrix | ||
| VectorsToMatrix | ||
| MatrixToFloats | ||
| FloatsToMatrix | ||
| MatrixToTR | ||
| TRToMatrix | ||
| MatrixToQuat | ||
| QuatToMatrix | ||
| VectorToFloats | ||
| FloatsToVector | ||
| Vector3ToFloats | ||
| FloatsToVector3 | ||
| VectorToVector3 | ||
| Vector3ToVector | ||
| QuatToFloats | ||
| FloatsToQuat | ||
| NormalizeQuat | ||
| FloatToFloat | ||
| Vector3ToVector3 | ||
| Vector4ToVector4 | ||
| MatrixToMatrix | ||
| QuatToQuat | ||
| PulseToPulse | ||
| MakeTranslation | ||
| MakeEulerX | ||
| MakeEulerY | ||
| MakeEulerZ | ||
| MakeScale | ||
| MakeAxisAngle | ||
| MakeOrtho | ||
| MakePerspective | ||
| MakeFrustum | ||
| MakeLookAt | ||
| MakeViewport |
enum ETransformType
| Enumerator | Value | Description |
|---|---|---|
| Free | 0 | |
| Translation | ||
| EulerX | ||
| EulerY | ||
| EulerZ | ||
| Scale | ||
| AxisAngle | ||
| Quat | ||
| Ortho | ||
| Perspective | ||
| Frustum | ||
| LookAt | ||
| Viewport |
enum EValueState
| Enumerator | Value | Description |
|---|---|---|
| Editable | 0x0002 | 10 |
| EditableSyn | 0x0003 | 11 |
| Locked | 0x0000 | 00 |
| LockedSyn | 0x0001 | 01 |
Float value editable status: b1, b2 - b1 is editable bit, b2 is synergies bit.
Todo: PF:- proc tohle neni po bitech? SynergiesBit = 0x0001, ///< 001 EditableBit = 0x0002, ///< 010 PossibleNextBit = 0x0004, ///< 100 ...
enum EValueType
| Enumerator | Value | Description |
|---|---|---|
| Pulse | 0 | |
| Float | standard data type | |
| Vec3 | ||
| Vec4 | ||
| Matrix | ||
| Quat | ||
| MatrixMul | connection of sequences in the scene graph - represents a matrix multiplication - stores a matrix | |
| Screen | projection and camera view transformation | |
| Ptr |
An operator value type = type of the interconnection wire.
The string names are defined in Operations.h, defaultIoNames
enum ResourceType
| Enumerator | Value | Description |
|---|---|---|
| Model | ||
| Shader | ||
| Texture |
enum TrackingDirection
| Enumerator | Value | Description |
|---|---|---|
| LeftToRight | -1 | |
| RightToLeft | 1 |
enum TransformSpace
| Enumerator | Value | Description |
|---|---|---|
| Model | ||
| View | ||
| Projection | ||
| Screen |
using CameraPtr
using Core::CameraPtr = typedef Ptr<Camera>;using gm
using Core::gm = typedef GraphManager;typedef ID
typedef std::int64_t Core::ID;using Matrices
using Core::Matrices = typedef std::vector<Ptr<Transform> >;using PinGroup
using Core::PinGroup = typedef std::vector<EValueType>;using PinNames
using Core::PinNames = typedef std::vector<std::string>;using TransformMask
using Core::TransformMask = typedef std::bitset<16>;ROW ORDER flags, if the mat4x4 values are editable (i.e., each single value may be changed by the mouse drag or not)
using ValueMask
using Core::ValueMask = typedef std::array<int8_t, 16>;Array of possible value codes for each matrix element: -1, 0, 1, ANY.
Note: These definitions are in the ROW order - are flipped to COLUMN order in validateValue()
These arrays are defined for all Transform variants in TransformImpl.cpp
Functions Documentation
function canEditValue
inline bool canEditValue(
EValueState valueState
)function getMatProduct
FORCE_INLINE glm::mat4 getMatProduct(
const std::vector< Ptr< Transform > > & matrices
)function getOperationProps
FORCE_INLINE const Operation * getOperationProps(
EOperatorType type
)function getTransformDefaults
FORCE_INLINE const TransformOperation::ValueMap & getTransformDefaults(
const std::string & keyWord
)function getTransformMap
FORCE_INLINE const TransformMask & getTransformMap(
const std::string & keyWord
)function getTransformOperation
std::optional< TransformOperation * > getTransformOperation(
const std::string & keyWord
)function getTransformOperation
FORCE_INLINE const TransformOperation & getTransformOperation(
ETransformType type
)function isViewportValid
bool isViewportValid(
const glm::mat4 & mat
)function longWaySlerp
template <typename T ,
glm::precision P>
GLM_FUNC_DECL glm::tquat< T, P > longWaySlerp(
glm::tquat< T, P > const & x,
glm::tquat< T, P > const & y,
T a
)PF: Long way version of Spherical linear interpolation of two quaternions.
Parameters:
- x A quaternion
- y A quaternion
- a Interpolation factor. The interpolation is defined beyond the range [0, 1].
Template Parameters:
- T Value type used to build the quaternion. Supported: half, float or double.
See: gtc_quaternion
The interpolation always take the long path and the rotation is performed at constant speed.
function longWaySlerp
template <typename T ,
glm::precision P>
GLM_FUNC_QUALIFIER glm::tquat< T, P > longWaySlerp(
glm::tquat< T, P > const & x,
glm::tquat< T, P > const & y,
T a
)PF: Long way version of Spherical linear interpolation of two quaternions.
Parameters:
- x A quaternion
- y A quaternion
- a Interpolation factor. The interpolation is defined beyond the range [0, 1].
Template Parameters:
- T Value type used to build the quaternion. Supported: half, float or double.
See: gtc_quaternion
The interpolation always take the long path and the rotation is performed at constant speed.
function matrixIndexNames
static const PinNames matrixIndexNames()function validateValue
bool validateValue(
const ValueMask & mask,
glm::ivec2 coords,
float value
)Check single element in the matrix, if it is in the allowed range.
Parameters:
- mask code of possible values (in the ROW order!) -1, 0, 1, ANY
- coords {x, y} x is column and y is row.
- value single value from the matrix to be validated against the mask
Return: true for an allowed value on given position in the matrix
Possible range is defined by constants in the ValueMask array. Editable values have the value VM_ANY, fixed values have VW_MINUS_ONE, VM_ZERO, or WM_ONE
function validateValues
bool validateValues(
const ValueMask & mask,
const glm::mat4 & matrix
)Check if all matrix elements are in the allowed range.
Parameters:
- mask code of possible values (in the ROW order!) -1, 0, 1, ANY
- matrix matrix to be validated against the mask
Return: true for a valid matrix
Fixed elements are not changed. Editable elements (ANY) must be further tested outside.
column order
Attributes Documentation
variable AngleAxisInputNames
static const PinNames AngleAxisInputNames = {"angle", "axis"};variable AngleAxisToQuatInputNames
static const PinNames AngleAxisToQuatInputNames = {"angle", "angle / 2", "vec3"};variable ClampFloatInputNames
static const PinNames ClampFloatInputNames = {"val", "min", "max"};variable cycleInputs
static const PinGroup cycleInputs = {
EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Pulse,
EValueType::Pulse, EValueType::Pulse, EValueType::Pulse, EValueType::Pulse,
};From, to, multiplier, receive (play, pause, stopAndReset, prev, next).
variable cycleOutputs
static const PinGroup cycleOutputs = {
EValueType::Float, EValueType::Pulse, EValueType::Pulse, EValueType::Pulse,
EValueType::Pulse, EValueType::Pulse, EValueType::Pulse, EValueType::Pulse,
};Output value, emit (play, pause, stopAndReset, prev, next).
variable defaultIoNames
static const std::array< std::string, 9 > defaultIoNames = {
"pulse",
"float",
"vec3",
"vec4",
"matrix",
"quat",
"MatMul",
"screen",
"pointer"
};variable emptyNames
static const PinNames emptyNames = {};variable eulerInputNames
static const PinNames eulerInputNames = {"angle"};variable floatInput
static const PinGroup floatInput = {EValueType::Float};variable floatMatrixInput
static const PinGroup floatMatrixInput = {EValueType::Float, EValueType::Matrix};variable floatQuatInput
static const PinGroup floatQuatInput = {EValueType::Float, EValueType::Quat};variable floatVector3Input
static const PinGroup floatVector3Input = {EValueType::Float, EValueType::Vec3};variable floatVectorInput
static const PinGroup floatVectorInput = {EValueType::Float, EValueType::Vec4};variable fourFloatInput
static const PinGroup fourFloatInput = {EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Float};variable fourVector3Input
static const PinGroup fourVector3Input = {EValueType::Vec3, EValueType::Vec3, EValueType::Vec3, EValueType::Vec3};variable fourVectorInput
static const PinGroup fourVectorInput = {EValueType::Vec4, EValueType::Vec4, EValueType::Vec4, EValueType::Vec4};variable g_AllLocked
constexpr TransformMask g_AllLocked = 0b0000000000000000;variable g_AllUnlocked
constexpr TransformMask g_AllUnlocked = 0b1111111111111111;variable g_AxisAngleMask
constexpr ValueMask g_AxisAngleMask = {
VM_ANY, VM_ANY, VM_ANY, VM_ZERO, VM_ANY, VM_ANY, VM_ANY, VM_ZERO,
VM_ANY, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_cameraProperties
const Operation g_cameraProperties = {
"Camera", "camera", {}, {EValueType::Screen, EValueType::Matrix, EValueType::MatrixMul}};variable g_CycleProperties
static const Operation g_CycleProperties = {
"Cycle", "cycle", cycleInputs, cycleOutputs,
NO_TAG,
{"from", "to", "step", "play", "pause", "stop", "prev", "next"},
{"value", "", "pause", "stop", "prev", "next", "begin", "end"},
};variable g_FrustumMask
constexpr ValueMask g_FrustumMask = {
VM_ANY, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO,
VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_MINUS_ONE, VM_ZERO,
};variable g_i3t
CameraCoordSystem g_i3t = CameraCoordSystem();The initial I3T specific "world" coordinate system (right handed, view towards -Z)
variable g_LookAtMask
constexpr ValueMask g_LookAtMask = {
VM_ANY, VM_ANY, VM_ANY, VM_ANY, VM_ANY, VM_ANY, VM_ANY, VM_ANY,
VM_ANY, VM_ANY, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_modelProperties
static const Operation g_modelProperties = {
"Model",
"model",
matrixMulInput,
{},
};variable g_openGL
CameraCoordSystem g_openGL = CameraCoordSystem{ClipRange::MinusOneToOne, DepthRange::ZeroToOne, true};The standard OpenGL coord system.
variable g_OrthoMask
constexpr ValueMask g_OrthoMask = {
VM_ANY, VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ANY, VM_ZERO, VM_ANY,
VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_PerspectiveMask
constexpr ValueMask g_PerspectiveMask = {
VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO,
VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_MINUS_ONE, VM_ZERO,
};variable g_RotateXMask
constexpr ValueMask g_RotateXMask = {
VM_ONE, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO,
VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_RotateYMask
constexpr ValueMask g_RotateYMask = {
VM_ANY, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO, VM_ONE, VM_ZERO, VM_ZERO,
VM_ANY, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_RotateZMask
constexpr ValueMask g_RotateZMask = {
VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO,
VM_ZERO, VM_ZERO, VM_ONE, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_ScaleMask
constexpr ValueMask g_ScaleMask = {
VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO,
VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_screen
const Operation g_screen = {
"Screen", "screen", screenInput, {EValueType::Float, EValueType::Float, EValueType::Float},
NO_TAG, DEFAULT_NAMES, DEFAULT_NAMES, false,
true};variable g_sequence
const Operation g_sequence = {
"Sequence", "sequence", matrixMulAndMatrixInput, {EValueType::MatrixMul, EValueType::Matrix, EValueType::Matrix}};variable g_transforms
static const std::vector< TransformOperation > g_transforms;All entries must be in the same order as ETransformType enum entries.
variable g_TranslateMask
constexpr ValueMask g_TranslateMask = {
VM_ONE, VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ONE, VM_ZERO, VM_ANY,
VM_ZERO, VM_ZERO, VM_ONE, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_ViewportMask
constexpr ValueMask g_ViewportMask = {
VM_ANY, VM_ZERO, VM_ZERO, VM_ANY, VM_ZERO, VM_ANY, VM_ZERO, VM_ANY,
VM_ZERO, VM_ZERO, VM_ANY, VM_ANY, VM_ZERO, VM_ZERO, VM_ZERO, VM_ONE,
};variable g_vulkan
CameraCoordSystem g_vulkan = CameraCoordSystem{ClipRange::ZeroToOne, DepthRange::ZeroToOne, false};The standard Vulkan coord system.
variable generator
static IdGenerator generator;variable generator
static IdGenerator generator;variable I3T_CAMERA_OUT_MATRIX
constexpr unsigned I3T_CAMERA_OUT_MATRIX = 1;variable I3T_CAMERA_OUT_MUL
constexpr unsigned I3T_CAMERA_OUT_MUL = 2;variable I3T_CAMERA_OUT_SCREEN
constexpr unsigned I3T_CAMERA_OUT_SCREEN = 0;variable I3T_CYCLE_IN_FROM
constexpr size_t I3T_CYCLE_IN_FROM = 0;variable I3T_CYCLE_IN_NEXT
constexpr size_t I3T_CYCLE_IN_NEXT = 7;variable I3T_CYCLE_IN_PAUSE
constexpr size_t I3T_CYCLE_IN_PAUSE = 4;variable I3T_CYCLE_IN_PLAY
constexpr size_t I3T_CYCLE_IN_PLAY = 3;variable I3T_CYCLE_IN_PREV
constexpr size_t I3T_CYCLE_IN_PREV = 6;variable I3T_CYCLE_IN_STEP
constexpr size_t I3T_CYCLE_IN_STEP = 2;variable I3T_CYCLE_IN_STOP
constexpr size_t I3T_CYCLE_IN_STOP = 5;variable I3T_CYCLE_IN_TO
constexpr size_t I3T_CYCLE_IN_TO = 1;variable I3T_CYCLE_OUT_BEGIN
constexpr size_t I3T_CYCLE_OUT_BEGIN = 6;variable I3T_CYCLE_OUT_END
constexpr size_t I3T_CYCLE_OUT_END = 7;variable I3T_CYCLE_OUT_NEXT
constexpr size_t I3T_CYCLE_OUT_NEXT = 5;variable I3T_CYCLE_OUT_PAUSE
constexpr size_t I3T_CYCLE_OUT_PAUSE = 2;variable I3T_CYCLE_OUT_PLAY
constexpr size_t I3T_CYCLE_OUT_PLAY = 1;variable I3T_CYCLE_OUT_PREV
constexpr size_t I3T_CYCLE_OUT_PREV = 4;variable I3T_CYCLE_OUT_STOP
constexpr size_t I3T_CYCLE_OUT_STOP = 3;variable I3T_CYCLE_OUT_VAL
constexpr size_t I3T_CYCLE_OUT_VAL = 0;variable I3T_CYCLE_STEP_DURATION_MINIMUM
constexpr auto I3T_CYCLE_STEP_DURATION_MINIMUM = 0.01f;variable I3T_CYCLE_STEP_DURATION_SECONDS
constexpr auto I3T_CYCLE_STEP_DURATION_SECONDS = 0.5f;variable I3T_DATA0
constexpr size_t I3T_DATA0 = 0;variable I3T_DATA1
constexpr size_t I3T_DATA1 = 1;variable I3T_DATA2
constexpr size_t I3T_DATA2 = 2;variable I3T_INPUT0
constexpr size_t I3T_INPUT0 = 0;variable I3T_INPUT1
constexpr size_t I3T_INPUT1 = 1;variable I3T_INPUT2
constexpr size_t I3T_INPUT2 = 2;variable I3T_MODEL_IN_MUL
constexpr size_t I3T_MODEL_IN_MUL = 0;variable I3T_OUTPUT0
constexpr size_t I3T_OUTPUT0 = 0;variable I3T_OUTPUT1
constexpr size_t I3T_OUTPUT1 = 1;variable I3T_OUTPUT2
constexpr size_t I3T_OUTPUT2 = 2;variable I3T_SCREEN_IN_DISPLAY
constexpr size_t I3T_SCREEN_IN_DISPLAY = 0;variable I3T_SCREEN_OUT_ASPECT
constexpr size_t I3T_SCREEN_OUT_ASPECT = 2;variable I3T_SCREEN_OUT_HEIGHT
constexpr size_t I3T_SCREEN_OUT_HEIGHT = 1;variable I3T_SCREEN_OUT_WIDTH
constexpr size_t I3T_SCREEN_OUT_WIDTH = 0;variable I3T_SEQ_IN_MAT
constexpr size_t I3T_SEQ_IN_MAT = 1;variable I3T_SEQ_IN_MUL
constexpr size_t I3T_SEQ_IN_MUL = 0;variable I3T_SEQ_MAT
constexpr size_t I3T_SEQ_MAT = 1;variable I3T_SEQ_MOD
constexpr size_t I3T_SEQ_MOD = 2;variable I3T_SEQ_MUL
constexpr size_t I3T_SEQ_MUL = 0;variable I3T_SEQ_OUT_MAT
constexpr size_t I3T_SEQ_OUT_MAT = 1;variable I3T_SEQ_OUT_MOD
constexpr size_t I3T_SEQ_OUT_MOD = 2;variable I3T_SEQ_OUT_MUL
constexpr size_t I3T_SEQ_OUT_MUL = 0;variable lookAtInputNames
static const PinNames lookAtInputNames = {"eye", "center", "up"};variable matrixInput
static const PinGroup matrixInput = {EValueType::Matrix};variable matrixMulAndMatrixInput
static const PinGroup matrixMulAndMatrixInput = {EValueType::MatrixMul, EValueType::Matrix};variable matrixMulInput
static const PinGroup matrixMulInput = {EValueType::MatrixMul};variable matrixVectorInput
static const PinGroup matrixVectorInput = {EValueType::Matrix, EValueType::Vec4};variable mixInputNames
static const PinNames mixInputNames = {"from", "to", "t"};variable NIL_ID
constexpr ID NIL_ID = 0;variable operations
static const std::vector< Operation > operations;Table with configuration parameters for OPERATORS.
Must be in the same order as in EOperatorType!!!
variable orthoFrustrumInputNames
static const PinNames orthoFrustrumInputNames = {"left", "right", "bottom", "top", "near", "far"};variable PerspectiveInputNames
static const PinNames PerspectiveInputNames = {"fovy", "aspect", "near", "far"};variable pulseInput
static const PinGroup pulseInput = {EValueType::Pulse};variable quatInput
static const PinGroup quatInput = {EValueType::Quat};variable QuatToFloatVecInputNames
static const PinNames QuatToFloatVecInputNames = {"w", "(x,y,z)"};variable screenInput
static const PinGroup screenInput = {EValueType::Screen};variable sixFloatInput
static const PinGroup sixFloatInput = {EValueType::Float, EValueType::Float, EValueType::Float,
EValueType::Float, EValueType::Float, EValueType::Float};variable sixteenFloatInput
static const PinGroup sixteenFloatInput = {EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Float,
EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Float,
EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Float,
EValueType::Float, EValueType::Float, EValueType::Float, EValueType::Float};variable threeFloatInput
static const PinGroup threeFloatInput = {EValueType::Float, EValueType::Float, EValueType::Float};variable threeVector3Input
static const PinGroup threeVector3Input = {EValueType::Vec3, EValueType::Vec3, EValueType::Vec3};variable tr
static const PinNames tr = {"T", "R"};variable twoFloatInput
static const PinGroup twoFloatInput = {EValueType::Float, EValueType::Float};variable twoFloatVector3Input
static const PinGroup twoFloatVector3Input = {EValueType::Float, EValueType::Float, EValueType::Vec3};variable twoMatrixInput
static const PinGroup twoMatrixInput = {EValueType::Matrix, EValueType::Matrix};variable twoQuatFloatInput
static const PinGroup twoQuatFloatInput = {EValueType::Quat, EValueType::Quat, EValueType::Float};variable twoQuatInput
static const PinGroup twoQuatInput = {EValueType::Quat, EValueType::Quat};variable twoVector3FloatInput
static const PinGroup twoVector3FloatInput = {EValueType::Vec3, EValueType::Vec3, EValueType::Float};variable twoVector3Input
static const PinGroup twoVector3Input = {EValueType::Vec3, EValueType::Vec3};variable twoVectorFloatInput
static const PinGroup twoVectorFloatInput = {EValueType::Vec4, EValueType::Vec4, EValueType::Float};variable twoVectorInput
static const PinGroup twoVectorInput = {EValueType::Vec4, EValueType::Vec4};variable vector3FloatInput
static const PinGroup vector3FloatInput = {EValueType::Vec3, EValueType::Float};variable vector3Input
static const PinGroup vector3Input = {EValueType::Vec3};variable vector3QuatInput
static const PinGroup vector3QuatInput = {EValueType::Vec3, EValueType::Quat};variable vectorInput
static const PinGroup vectorInput = {EValueType::Vec4};variable vectorMatrixInput
static const PinGroup vectorMatrixInput = {EValueType::Vec4, EValueType::Matrix};variable Vectors3ToMatrixInputNames
static const PinNames Vectors3ToMatrixInputNames = {"vec3 X", "vec3 Y", "vec3 Z", "vec3 T"};variable VectorsToMatrixInputNames
static const PinNames VectorsToMatrixInputNames = {"vec4 X", "vec4 Y", "vec4 Z", "vec4 T"};variable viewportInputNames
static const PinNames viewportInputNames = {"x", "y", "width", "height", "near", "far"};variable VM_ANY
constexpr int8_t VM_ANY = 2;Editable matrix element in ValueMask - it's range of values may be limited - the limit is checked in setValue() methods.
variable VM_MINUS_ONE
constexpr int8_t VM_MINUS_ONE = -1;Fixed matrix element (-1) in ValueMask.
variable VM_ONE
constexpr int8_t VM_ONE = 1;Fixed matrix element (+1) in ValueMask.
variable VM_ZERO
constexpr int8_t VM_ZERO = 0;Fixed matrix element (0) in ValueMask.
variable xyz
static const PinNames xyz = {"x", "y", "z"};variable xyzw
static const PinNames xyzw = {"x", "y", "z", "w"};Updated on 2026-09-11 at 21:24:26 +0000