|
Blender V4.3
|
Classes | |
| struct | BoolElem |
| class | ElemEvalParams |
| struct | ElemVariant |
| struct | FloatElem |
| struct | GroupInputElem |
| struct | IntElem |
| class | InverseElemEvalParams |
| struct | MatrixElem |
| struct | PrimitiveValueElem |
| struct | RotationElem |
| struct | SocketElem |
| struct | ValueNodeElem |
| struct | VectorElem |
Functions | |
| std::optional< ElemVariant > | get_elem_variant_for_socket_type (const eNodeSocketDatatype type) |
| std::optional< ElemVariant > | convert_socket_elem (const bNodeSocket &old_socket, const bNodeSocket &new_socket, const ElemVariant &old_elem) |
A #ValueElem is an abstract element or part of a value. It does not store the actual value of the type but which parts of it are affected. For example, #VectorElem does not store the actual vector values but just a boolean for each component.
Some nodes implement special #node_eval_elem and #node_eval_inverse_elem methods which allow analyzing the potential impact of changing part of a value in one place of a node tree.
The types are generally quite small and trivially copyable and destructible. They just contain some booleans.
| std::optional< ElemVariant > blender::nodes::value_elem::convert_socket_elem | ( | const bNodeSocket & | old_socket, |
| const bNodeSocket & | new_socket, | ||
| const ElemVariant & | old_elem ) |
Converts the type of a value element if possible.
Definition at line 29 of file value_elem.cc.
References blender::nodes::value_elem::FloatElem::all(), blender::nodes::value_elem::VectorElem::all(), blender::nodes::value_elem::RotationElem::angle, blender::nodes::value_elem::RotationElem::axis, ELEM, blender::nodes::value_elem::ElemVariant::elem, blender::nodes::value_elem::RotationElem::euler, get_elem_variant_for_socket_type(), blender::nodes::value_elem::MatrixElem::rotation, SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_MATRIX, SOCK_ROTATION, SOCK_VECTOR, and bNodeSocket::type.
Referenced by blender::nodes::gizmos::build_tree_gizmo_propagation(), blender::nodes::inverse_eval::propagate_socket_elem(), and blender::nodes::inverse_eval::propagate_value_elem_filtered().
| std::optional< ElemVariant > blender::nodes::value_elem::get_elem_variant_for_socket_type | ( | eNodeSocketDatatype | type | ) |
Get the default value element for the given socket type if it exists.
Definition at line 9 of file value_elem.cc.
References SOCK_BOOLEAN, SOCK_FLOAT, SOCK_INT, SOCK_MATRIX, SOCK_ROTATION, and SOCK_VECTOR.
Referenced by convert_socket_elem(), blender::nodes::inverse_eval::find_local_inverse_eval_targets(), blender::nodes::gizmos::foreach_active_gizmo_in_open_node_editor(), blender::nodes::gizmos::get_editable_gizmo_elem(), and blender::nodes::gizmos::get_gizmo_socket_elem().