Core::Sequence
#include "Core/Nodes/Sequence.h"
Inherits from Core::Node, std::enable_shared_from_this< Node >
Public Functions
Name | |
---|---|
Sequence(MatrixTracker * tracker) | |
~Sequence() override | |
Ptr< Transform > & | getMatRef(size_t idx)<br>Get reference to matrix in a sequence at given position. |
const Matrices & | getMatrices() const |
Ptr< Transform > | popMatrix(const int index)<br>Pop matrix from a sequence. |
SetValueResult | pushMatrix(Ptr< Transform > matrix)<br>Push matrix to the end of the sequence. |
SetValueResult | pushMatrix(Ptr< Transform > matrix, size_t index)<br>Pass matrix to a sequence. |
MatrixTracker * | startTracking(TrackingDirection direction, std::vector< UPtr< IModelProxy > > modelProxy) |
void | stopTracking() |
void | swap(int from, int to) |
virtual void | updateValues(int inputIndex) override<br>Computes new values of outputs based on inputs. |
Friends
Name | |
---|---|
class | GraphManager |
class | Storage |
Additional inherited members
Public Functions inherited from Core::Node
Name | |
---|---|
virtual void | addDeleteCallback(std::function< void(Node )> callback)<br> The callback parameters: Node = node that has been deleted |
virtual void | addPlugCallback(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 void | addUnplugCallback(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 void | addUpdateCallback(std::function< void(Node *)> callback)<br>Registers a callback that gets called on any updateValues() call. |
void | appendChildNode(Ptr< Node > node) |
bool | areAllInputsPlugged() |
bool | areAllInputsUnplugged() const |
bool | areInputsPlugged(int numInputs) |
template <typename T > <br>Ptr< T > | as() |
const Data & | data(size_t index =0) const<br>Get Node contents, read only. |
Data & | dataMut(size_t index) |
void | finalize()<br>Prepares node for its destruction, after that the destructor can be called. |
ID | getId() 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::string | getSignature()<br>"{node type} #{node ID}" |
EValueState | getState(size_t pinIndex =0) |
void | init()<br>Initialize node id, inputs, and outputs according to the preset node type. |
void | notifyOwner() |
virtual void | onInit() |
bool | operator!=(const Node & other) const |
bool | operator==(const Node & other) const |
ENodePlugResult | plug(const Ptr< Node > & childNode, unsigned fromIndex, unsigned toIndex)<br>Connect this (parent) node output to the childNode input. |
void | pulse(size_t index) |
virtual void | receiveSignal(int inputIndex)<br>Implements the operator reaction to the change of its inputIndex input. |
virtual SetValueResult | setValue(const glm::mat4 & mat) |
virtual SetValueResult | setValue(const glm::mat4 & mat, const DataMap & map)<br>Smart set function, used with constrained transformation for value checking. |
virtual SetValueResult | setValue(const glm::quat & q) |
virtual SetValueResult | setValue(const glm::vec3 & vec) |
virtual SetValueResult | setValue(const glm::vec4 & vec) |
template <typename T > <br>SetValueResult | setValue(const T & value, unsigned index) |
virtual SetValueResult | setValue(float val)<br>Set the value of the node. |
virtual SetValueResult | setValue(float val, glm::ivec2 coords) |
virtual SetValueResult | setValue(void * ptr) |
void | spreadSignal()<br>Spread signal to all outputs. |
void | spreadSignal(size_t outIndex)<br>Spread signal to the selected output outIndex only. |
Protected Functions inherited from Core::Node
Name | |
---|---|
Node(const Operation & operation)<br>Node is never constructed directory. | |
virtual | ~Node() |
ENodePlugResult | isPlugCorrect(const Pin & input, const Pin & output) |
virtual void | onUnplugInput(size_t index) |
template <typename T > <br>void | setInternalValue(const T & value, size_t index =0)<br>Sets the node value without validation. |
void | setInternalValue(float value, glm::ivec2 coordinates, size_t index =0) |
bool | shouldPulse(size_t inputIndex, size_t updatedInputIndex)<br>Tests if the updatedInputIndex should be pulsed. |
void | triggerDeleteCallback(Node * node) |
void | triggerPlugCallback(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex) |
void | triggerUnplugCallback(Node * fromNode, Node * toNode, size_t fromIndex, size_t toIndex) |
void | triggerUpdateCallback(Node * node) |
Public Attributes inherited from Core::Node
Name | |
---|---|
std::vector< EValueState > | m_OperatorState |
Protected Attributes inherited from Core::Node
Name | |
---|---|
std::vector< Node * > | m_children <br>Nested nodes. |
ID | m_id |
std::vector< Pin > | m_inputs <br>Inputs of the box: Input tabs with glyphs. |
std::vector< Data > | m_internalData <br>Results of operations. |
Operation | m_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. |
Friends inherited from Core::Node
Name | |
---|---|
class | Pin |
Detailed Description
class Core::Sequence;
class Core::Sequence;
Sequence of matrices.
+------------------------—+ | <M> 0 mul | | 0 mul <M> 1 mat | | 1 mat <M> 2 model | +------------------------—+
Public Functions Documentation
function Sequence
Sequence(
MatrixTracker * tracker
)
Sequence(
MatrixTracker * tracker
)
function ~Sequence
~Sequence() override
~Sequence() override
function getMatRef
inline Ptr< Transform > & getMatRef(
size_t idx
)
inline Ptr< Transform > & getMatRef(
size_t idx
)
Get reference to matrix in a sequence at given position.
Parameters:
- idx Index of matrix.
Return: Reference to matrix holt in m_matrices vector.
Be careful not to access matrix via invalid reference after calling popMatrix.
function getMatrices
inline const Matrices & getMatrices() const
inline const Matrices & getMatrices() const
function popMatrix
Ptr< Transform > popMatrix(
const int index
)
Ptr< Transform > popMatrix(
const int index
)
Pop matrix from a sequence.
Caller takes ownership of returned matrix.
function pushMatrix
SetValueResult pushMatrix(
Ptr< Transform > matrix
)
SetValueResult pushMatrix(
Ptr< Transform > matrix
)
Push matrix
to the end of the sequence.
Parameters:
- matrix
Return:
function pushMatrix
SetValueResult pushMatrix(
Ptr< Transform > matrix,
size_t index
)
SetValueResult pushMatrix(
Ptr< Transform > matrix,
size_t index
)
Pass matrix to a sequence.
Parameters:
- matrix Matrix to transfer.
- index New position of matrix.
Sequence takes ownership of matrix.
function startTracking
MatrixTracker * startTracking(
TrackingDirection direction,
std::vector< UPtr< IModelProxy > > modelProxy
)
MatrixTracker * startTracking(
TrackingDirection direction,
std::vector< UPtr< IModelProxy > > modelProxy
)
function stopTracking
void stopTracking()
void stopTracking()
function swap
void swap(
int from,
int to
)
void swap(
int from,
int to
)
function updateValues
virtual void updateValues(
int inputIndex
) override
virtual void updateValues(
int inputIndex
) override
Computes new values of outputs based on inputs.
Parameters:
- inputIndex Index of the modified input.
Reimplements: Core::Node::updateValues
Encodes the box function by updating the output values for a given inputIndex - fired by receiveSignal().
The base class method calls update callbacks registered with addUpdateCallback(). So derived methods should also call their base method if they want to inform any outside observers.
Friends
friend GraphManager
friend class GraphManager(
GraphManager
);
friend class GraphManager(
GraphManager
);
friend Storage
friend class Storage(
Storage
);
friend class Storage(
Storage
);
Updated on 2025-01-07 at 13:40:44 +0000