Blender V4.3
blender::fn::FieldNode Class Referenceabstract

#include <FN_field.hh>

Inherited by blender::fn::FieldConstant, blender::fn::FieldInput, and blender::fn::FieldOperation.

Public Member Functions

virtual const CPPTypeoutput_cpp_type (int output_index) const =0
 
#FieldNode Inline Methods
 FieldNode (FieldNodeType node_type)
 
FieldNodeType node_type () const
 
bool depends_on_input () const
 
const std::shared_ptr< const FieldInputs > & field_inputs () const
 
virtual uint64_t hash () const
 
virtual bool is_equal_to (const FieldNode &other) const
 
#FieldNode
virtual ~FieldNode ()
 
virtual void for_each_field_input_recursive (FunctionRef< void(const FieldInput &)> fn) const
 

Protected Attributes

std::shared_ptr< const FieldInputsfield_inputs_
 

Detailed Description

A node in a field-tree. It has at least one output that can be referenced by fields.

Definition at line 65 of file FN_field.hh.

Constructor & Destructor Documentation

◆ FieldNode()

blender::fn::FieldNode::FieldNode ( FieldNodeType node_type)
inline

Definition at line 549 of file FN_field.hh.

◆ ~FieldNode()

blender::fn::FieldNode::~FieldNode ( )
virtualdefault

Member Function Documentation

◆ depends_on_input()

◆ field_inputs()

const std::shared_ptr< const FieldInputs > & blender::fn::FieldNode::field_inputs ( ) const
inline

Definition at line 561 of file FN_field.hh.

References field_inputs_.

Referenced by blender::fn::FieldInput::FieldInput().

◆ for_each_field_input_recursive()

void blender::fn::FieldNode::for_each_field_input_recursive ( FunctionRef< void(const FieldInput &)> fn) const
virtual

Calls the callback for every field input that the current field depends on. This is recursive, so if a field input depends on other field inputs, those are taken into account as well.

Reimplemented in blender::nodes::node_geo_blur_attribute_cc::BlurAttributeFieldInput, blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput, blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput, blender::nodes::node_geo_index_of_nearest_cc::HasNeighborFieldInput, blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput, blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput, blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsCostFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsNextVertFieldInput, blender::nodes::node_geo_mesh_face_group_boundaries_cc::BoundaryFieldInput, blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::CornersOfEdgeInput, blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceInput, blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertInput, blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertInput, blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput, blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput, blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput, blender::nodes::node_geo_uv_pack_islands_cc::PackIslandsFieldInput, and blender::nodes::node_geo_uv_unwrap_cc::UnwrapFieldInput.

Definition at line 587 of file field.cc.

References field_inputs_.

Referenced by blender::nodes::LazyFunctionForAnonymousAttributeSetExtract::execute_impl(), blender::bke::EvaluateOnDomainInput::for_each_field_input_recursive(), blender::nodes::node_geo_blur_attribute_cc::BlurAttributeFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput::for_each_field_input_recursive(), blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_index_of_nearest_cc::HasNeighborFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsCostFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsNextVertFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_face_group_boundaries_cc::BoundaryFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::CornersOfEdgeInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertInput::for_each_field_input_recursive(), blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_offset_point_in_curve_cc::ControlPointNeighborFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_offset_point_in_curve_cc::OffsetValidFieldInput::for_each_field_input_recursive(), blender::nodes::node_geo_uv_pack_islands_cc::PackIslandsFieldInput::for_each_field_input_recursive(), and blender::nodes::node_geo_uv_unwrap_cc::UnwrapFieldInput::for_each_field_input_recursive().

◆ hash()

uint64_t blender::fn::FieldNode::hash ( ) const
inlinevirtual

Reimplemented in blender::bke::AttributeFieldInput, blender::bke::CurveLengthFieldInput, blender::bke::IDAttributeFieldInput, blender::bke::NamedLayerSelectionFieldInput, blender::bke::NormalFieldInput, blender::fn::IndexFieldInput, blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput, blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput, blender::nodes::node_geo_blur_attribute_cc::BlurAttributeFieldInput, blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput, blender::nodes::node_geo_curve_handle_type_selection_cc::HandleTypeFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveLengthParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::IndexOnSplineFieldInput, blender::nodes::node_geo_curve_topology_curve_of_point_cc::CurveOfPointInput, blender::nodes::node_geo_curve_topology_curve_of_point_cc::PointIndexInCurveInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::CurvePointCountInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::CurveStartPointInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput, blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput, blender::nodes::node_geo_edges_to_face_groups_cc::FaceSetFromBoundariesInput, blender::nodes::node_geo_index_of_nearest_cc::HasNeighborFieldInput, blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput, blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput, blender::nodes::node_geo_input_instance_rotation_cc::InstanceRotationFieldInput, blender::nodes::node_geo_input_instance_scale_cc::InstanceScaleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::AngleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::SignedAngleFieldInput, blender::nodes::node_geo_input_mesh_edge_neighbors_cc::EdgeNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgePositionFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgeVertsInput, blender::nodes::node_geo_input_mesh_face_area_cc::FaceAreaFieldInput, blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceVertexCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexCountFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexFaceCountFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsCostFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsNextVertFieldInput, blender::nodes::node_geo_input_spline_length_cc::SplineCountFieldInput, blender::nodes::node_geo_input_spline_resolution_cc::ResolutionFieldInput, blender::nodes::node_geo_input_tangent_cc::TangentFieldInput, blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput, blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::CornersOfEdgeCountInput, blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceCountInput, blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceInput, blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertCountInput, blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertInput, blender::nodes::node_geo_mesh_topology_edges_of_corner_cc::CornerNextEdgeFieldInput, blender::nodes::node_geo_mesh_topology_edges_of_corner_cc::CornerPreviousEdgeFieldInput, blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertCountInput, blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertInput, blender::nodes::node_geo_mesh_topology_face_of_corner_cc::CornerFaceIndexInput, blender::nodes::node_geo_mesh_topology_face_of_corner_cc::CornerIndexInFaceInput, blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput, and blender::nodes::node_geo_mesh_topology_vertex_of_corner_cc::CornerVertFieldInput.

Definition at line 566 of file FN_field.hh.

References blender::get_default_hash().

◆ is_equal_to()

bool blender::fn::FieldNode::is_equal_to ( const FieldNode & other) const
inlinevirtual

Reimplemented in blender::bke::AttributeFieldInput, blender::bke::CurveLengthFieldInput, blender::bke::IDAttributeFieldInput, blender::bke::NamedLayerSelectionFieldInput, blender::bke::NormalFieldInput, blender::fn::IndexFieldInput, blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput, blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput, blender::nodes::node_geo_blur_attribute_cc::BlurAttributeFieldInput, blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput, blender::nodes::node_geo_curve_handle_type_selection_cc::HandleTypeFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveLengthParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::IndexOnSplineFieldInput, blender::nodes::node_geo_curve_topology_curve_of_point_cc::CurveOfPointInput, blender::nodes::node_geo_curve_topology_curve_of_point_cc::PointIndexInCurveInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::CurvePointCountInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::CurveStartPointInput, blender::nodes::node_geo_curve_topology_points_of_curve_cc::PointsOfCurveInput, blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput, blender::nodes::node_geo_edges_to_face_groups_cc::FaceSetFromBoundariesInput, blender::nodes::node_geo_index_of_nearest_cc::HasNeighborFieldInput, blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput, blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput, blender::nodes::node_geo_input_instance_rotation_cc::InstanceRotationFieldInput, blender::nodes::node_geo_input_instance_scale_cc::InstanceScaleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::AngleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::SignedAngleFieldInput, blender::nodes::node_geo_input_mesh_edge_neighbors_cc::EdgeNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgePositionFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgeVertsInput, blender::nodes::node_geo_input_mesh_face_area_cc::FaceAreaFieldInput, blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceVertexCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexCountFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexFaceCountFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsCostFieldInput, blender::nodes::node_geo_input_shortest_edge_paths_cc::ShortestEdgePathsNextVertFieldInput, blender::nodes::node_geo_input_spline_length_cc::SplineCountFieldInput, blender::nodes::node_geo_input_spline_resolution_cc::ResolutionFieldInput, blender::nodes::node_geo_input_tangent_cc::TangentFieldInput, blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput, blender::nodes::node_geo_mesh_topology_corners_of_edge_cc::CornersOfEdgeCountInput, blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceCountInput, blender::nodes::node_geo_mesh_topology_corners_of_face_cc::CornersOfFaceInput, blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertCountInput, blender::nodes::node_geo_mesh_topology_corners_of_vertex_cc::CornersOfVertInput, blender::nodes::node_geo_mesh_topology_edges_of_corner_cc::CornerNextEdgeFieldInput, blender::nodes::node_geo_mesh_topology_edges_of_corner_cc::CornerPreviousEdgeFieldInput, blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertCountInput, blender::nodes::node_geo_mesh_topology_edges_of_vertex_cc::EdgesOfVertInput, blender::nodes::node_geo_mesh_topology_face_of_corner_cc::CornerFaceIndexInput, blender::nodes::node_geo_mesh_topology_face_of_corner_cc::CornerIndexInFaceInput, blender::nodes::node_geo_mesh_topology_offset_corner_in_face_cc::OffsetCornerInFaceFieldInput, and blender::nodes::node_geo_mesh_topology_vertex_of_corner_cc::CornerVertFieldInput.

Definition at line 571 of file FN_field.hh.

◆ node_type()

FieldNodeType blender::fn::FieldNode::node_type ( ) const
inline

◆ output_cpp_type()

virtual const CPPType & blender::fn::FieldNode::output_cpp_type ( int output_index) const
pure virtual

Member Data Documentation

◆ field_inputs_

std::shared_ptr<const FieldInputs> blender::fn::FieldNode::field_inputs_
protected

Keeps track of the inputs that this node depends on. This avoids recomputing it every time the data is required. It is a shared pointer, because very often multiple nodes depend on the same inputs. Might contain null.

Definition at line 76 of file FN_field.hh.

Referenced by depends_on_input(), field_inputs(), blender::fn::FieldInput::FieldInput(), blender::fn::FieldOperation::FieldOperation(), and for_each_field_input_recursive().


The documentation for this class was generated from the following files: