Skip to content

Core::TransformImpl< ETransformType::Ortho > ​

#include "Core/Nodes/TransformImpl.h"

Inherits from Core::Transform, Core::Node, std::enable_shared_from_this< Node >

Public Functions ​

Name
TransformImpl()
virtual voidinitDefaults() override<br>Init the (non-zero) second level parameters (from LOD::SetValues) via their initDefaults and update the internal transformation matrix).
virtual boolisValid() const override<br>Checks the validity of the stored Transform matrix (used by GUI to show the corrupted flag).
virtual voidresetMatrixFromDefaults() override<br>Reset the transform matrix visible in LOD::Full (internalValue) to match the defaultValues (from LOD::SetValues).
virtual voidsetDefaultValueWithSynergies(const std::string & name, Core::Data && val) override<br>Make the frustum axis-symmetric (left = -right, top = -bottom)
virtual SetValueResultsetValue(float val, glm::ivec2 coords) override

Public Attributes ​

Name
CameraCoordSystemm_coordinateSystem

Additional inherited members ​

Public Functions inherited from Core::Transform

Name
Transform(const TransformOperation & transformType)
voidcreateDefaults()<br>Prepare storage for second level parameters (std::map with values)
voiddisableSynergies()
voidenableSynergies()
voidfree()
intgetCurrentIndex() const
Ptr< Node >getCurrentSequence()
TransformOperation::ValueMapgetDefaultTypes() const
const Data &getDefaultValue(const std::string & name) const<br>Get the value which the transform can hold (current value stored in the transformation).
DefaultValues &getDefaultValues()
EValueStategetValueState(glm::ivec2 coords) const
boolhasMenuSynergies() const
boolhasSavedValue() const
boolhasSynergies() const
boolisInSequence() const
boolisLocked() const
voidlock()
voidnotifySequence()
voidnullSequence()
TransformOperation *properties() const
voidreloadValue()<br>Restore saved values if they exist.
voidsaveValue()<br>Save current values of the transformation for future reloading.
template <typename T &gt; <br>SetValueResultsetDefaultValue(const std::string & name, T && val)<br>Setting of one second level parameter defining the transformation (in LOD::SetValues).
template <typename T &gt; <br>voidsetDefaultValueNoUpdate(const std::string & name, T && val)
voidsetDefaultValues(const DefaultValues & values)
voidsetSequence(Node * s, int index)
voidunlock()

Protected Functions inherited from Core::Transform

Name
boolcanSetValue(const ValueMask & mask, glm::ivec2 coords, float value)
Data &getDefaultValueMut(const std::string & name)

Protected Attributes inherited from Core::Transform

Name
DefaultValuesm_defaultValues
boolm_hasMenuSynergies <br>True for transformations, that support synergies, such as scale, eulerAngleXYZ, ortho, frustum, and quaternion ONLY.
boolm_hasSynergies <br>applicable for: uniform scale, eulerAngleXYZ, ortho, frustum, and quat and quaternion.
boolm_isLocked <br>Edit of the matrix is limited to editable values - defined in Operations.h g_transforms.

Friends inherited from Core::Transform

Name
classGraphManager
classMatrixTracker
classSequence

Public Functions inherited from Core::Node

Name
virtual voidaddDeleteCallback(std::function< void(Node *)> callback)<br> The callback parameters:
virtual voidaddPlugCallback(std::function< void(Node *, Node *, size_t, size_t)> callback)<br>Registers a callback that gets called when the node's output pins get plugged in.
virtual voidaddUnplugCallback(std::function< void(Node *, Node *, size_t, size_t)> callback)<br>Registers a callback that gets called when the node's input pins get unplugged.
virtual voidaddUpdateCallback(std::function< void(Node *)> callback)<br>Registers a callback that gets called on any updateValues() call.
voidappendChildNode(Ptr< Node > node)
boolareAllInputsPlugged()
boolareAllInputsUnplugged() const
boolareInputsPlugged(int numInputs)
template <typename T &gt; <br>Ptr< T >as()
template <typename T &gt; <br>T *asRaw()
const Data &data(size_t index =0) const<br>Get Node contents, read only.
Data &dataMut(size_t index)
voidfinalize()<br>Prepares node for its destruction, after that the destructor can be called.
IDgetId() const
Pin &getInput(size_t i)
std::vector< Pin > &getInputPins()
Data &getInternalData(size_t index =0)<br>Get data storage for read and write purposes.
const char *getLabel() const
const Operation &getOperation() const
Pin &getOutput(size_t i)
std::vector< Pin > &getOutputPins()
Ptr< Node >getOwner() const<br>Get direct owner of this node.
Ptr< Node >getPtr()<br>Get reference to this node instance.
Ptr< Node >getRootOwner()<br>Get the topmost owner of this node.
std::stringgetSignature()<br>"{node type} #{node ID}"
EValueStategetState(size_t pinIndex =0)
TrackedNodeData *getTrackingData()
voidinit()<br>Initialize node id, inputs, and outputs according to the preset node type.
voidnotifyOwner()
virtual voidonInit()
booloperator!=(const Node & other) const
booloperator==(const Node & other) const
ENodePlugResultplug(const Ptr< Node > & childNode, unsigned fromIndex, unsigned toIndex)<br>Connect this (parent) node output to the childNode input.
voidpulse(size_t index)
virtual voidreceiveSignal(int inputIndex)<br>Implements the operator reaction to the change of its inputIndex input.
voidspreadSignal()<br>Spread signal to all outputs.
voidspreadSignal(size_t outIndex)<br>Spread signal to the selected output outIndex only.
virtual voidupdateValues(int inputIndex =0)<br>Computes new values of outputs based on inputs.

Protected Functions inherited from Core::Node

Name
Node(const Operation & operation)<br>Node is never constructed directory.
virtual~Node()
ENodePlugResultisPlugCorrect(const Pin & input, const Pin & output)
virtual voidonPlug(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex)
virtual voidonUnplug(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex)
virtual voidonUpdate()
template <typename T &gt; <br>voidsetInternalValue(const T & value, size_t index =0)<br>Sets the node value without validation.
voidsetInternalValue(float value, glm::ivec2 coordinates, size_t index =0)
boolshouldPulse(size_t inputIndex, size_t updatedInputIndex)<br>Tests if the updatedInputIndex should be pulsed.
voidtriggerDeleteCallback(Node * node)
voidtriggerPlugCallback(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex)
voidtriggerUnplugCallback(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex)
voidtriggerUpdateCallback(Node * node)

Public Attributes inherited from Core::Node

Name
std::vector< EValueState >m_OperatorState

Protected Attributes inherited from Core::Node

Name
boolfinalized
std::vector< Node * >m_children <br>Nested nodes.
IDm_id
std::vector< Pin >m_inputs <br>Inputs of the box: Input tabs with glyphs.
std::vector< Data >m_internalData <br>Results of operations.
Operationm_operation <br>Operator node properties.
std::vector< Pin >m_outputs <br>Outputs of the box: output tabs with glyphs.
Node *m_owner <br>Owner of the node, used in complex type of nodes, such as sequence or camera.
TrackedNodeData *m_trackingData <br>Reference to additional tracking data if applicable, nullptr indicates no active tracking operation.

Friends inherited from Core::Node

Name
classGraphManager
classMatrixTracker
classPin

Public Functions Documentation ​

function TransformImpl ​

cpp
inline explicit TransformImpl()
inline explicit TransformImpl()

function initDefaults ​

cpp
virtual void initDefaults() override
virtual void initDefaults() override

Init the (non-zero) second level parameters (from LOD::SetValues) via their initDefaults and update the internal transformation matrix).

Reimplements: Core::Transform::initDefaults

It is overriden in all transforms with their default values. This version is for nodes without the default value (now only the Free node)

function isValid ​

cpp
virtual bool isValid() const override
virtual bool isValid() const override

Checks the validity of the stored Transform matrix (used by GUI to show the corrupted flag).

Return: true if the stored matrix represents a correct transform

Todo: isValid checks matrix AND parameters from the SetValues LOD (Default values)

Reimplements: Core::Transform::isValid

function resetMatrixFromDefaults ​

cpp
virtual void resetMatrixFromDefaults() override
virtual void resetMatrixFromDefaults() override

Reset the transform matrix visible in LOD::Full (internalValue) to match the defaultValues (from LOD::SetValues).

Todo: For synergies, it has to be resolved. Most probably, it should leave the synergies unchanged.

  • for Scale When setting X value in non-uniform scale -> this switch to uniform scale (due to enable synergies)

Reimplements: Core::Transform::resetMatrixFromDefaults

Specialized functions are created for each Transform type. For transforms with no default values (now only Free), resets the matrix directly.

The opposite setup - from matrix to Defaults - is done in the setValue() functions. It should also lock the matrix.

function setDefaultValueWithSynergies ​

cpp
virtual void setDefaultValueWithSynergies(
    const std::string & name,
    Core::Data && val
) override
virtual void setDefaultValueWithSynergies(
    const std::string & name,
    Core::Data && val
) override

Make the frustum axis-symmetric (left = -right, top = -bottom)

Parameters:

  • name default value name
  • val new Value

Reimplements: Core::Transform::setDefaultValueWithSynergies

function setValue ​

cpp
virtual SetValueResult setValue(
    float val,
    glm::ivec2 coords
) override
virtual SetValueResult setValue(
    float val,
    glm::ivec2 coords
) override

Parameters:

  • val new value
  • coords in the column major order: coords.x is the column index and coords.y is the row index.

Return:

Reimplements: Core::Transform::setValue

-----------------------β€”to

Public Attributes Documentation ​

variable m_coordinateSystem ​

cpp
CameraCoordSystem m_coordinateSystem {g_openGL};
CameraCoordSystem m_coordinateSystem {g_openGL};

Updated on 2025-05-31 at 12:55:31 +0000