Blender  V3.3
Public Member Functions | Protected Attributes | List of all members
blender::fn::FieldNode Class Referenceabstract

#include <FN_field.hh>

Inheritance diagram for blender::fn::FieldNode:
blender::fn::FieldConstant blender::fn::FieldInput blender::fn::FieldOperation blender::bke::GeometryFieldInput blender::fn::IndexFieldInput blender::fn::tests::IndexFieldInput blender::bke::AnonymousAttributeFieldInput blender::bke::AttributeFieldInput blender::bke::CurveLengthFieldInput blender::bke::IDAttributeFieldInput blender::bke::NormalFieldInput blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput< T > blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput< T > 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_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput blender::nodes::node_geo_field_at_index_cc::FieldAtIndex blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput blender::nodes::node_geo_input_instance_rotation_cc::VectorFieldInput blender::nodes::node_geo_input_instance_scale_cc::VectorFieldInput 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::EdgeVerticesFieldInput 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_tangent_cc::TangentFieldInput blender::nodes::node_geo_interpolate_domain_cc::InterpolateDomain blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput blender::nodes::node_geo_uv_pack_islands_cc::PackIslandsFieldInput blender::nodes::node_geo_uv_unwrap_cc::UnwrapFieldInput

Public Member Functions

virtual ~FieldNode ()
 
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
 

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 61 of file FN_field.hh.

Constructor & Destructor Documentation

◆ FieldNode()

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

Definition at line 576 of file FN_field.hh.

◆ ~FieldNode()

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

Member Function Documentation

◆ depends_on_input()

bool blender::fn::FieldNode::depends_on_input ( ) const
inline

◆ field_inputs()

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

◆ hash()

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

Reimplemented in blender::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput, blender::nodes::node_geo_input_tangent_cc::TangentFieldInput, blender::nodes::node_geo_input_spline_length_cc::SplineCountFieldInput, 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_mesh_vertex_neighbors_cc::VertexFaceCountFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceVertexCountFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput, blender::nodes::node_geo_input_mesh_face_area_cc::FaceAreaFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgePositionFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgeVerticesFieldInput, blender::nodes::node_geo_input_mesh_edge_neighbors_cc::EdgeNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::SignedAngleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::AngleFieldInput, blender::nodes::node_geo_input_instance_scale_cc::VectorFieldInput, blender::nodes::node_geo_input_instance_rotation_cc::VectorFieldInput, blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput, blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::IndexOnSplineFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveLengthParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveParameterFieldInput, blender::nodes::node_geo_curve_handle_type_selection_cc::HandleTypeFieldInput, blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput, blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput< T >, blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput< T >, blender::fn::IndexFieldInput, blender::bke::CurveLengthFieldInput, blender::bke::AnonymousAttributeFieldInput, blender::bke::NormalFieldInput, blender::bke::IDAttributeFieldInput, and blender::bke::AttributeFieldInput.

Definition at line 595 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::nodes::node_geo_material_selection_cc::MaterialSelectionFieldInput, blender::nodes::node_geo_input_tangent_cc::TangentFieldInput, blender::nodes::node_geo_input_spline_length_cc::SplineCountFieldInput, 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_mesh_vertex_neighbors_cc::VertexFaceCountFieldInput, blender::nodes::node_geo_input_mesh_vertex_neighbors_cc::VertexCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandCountFieldInput, blender::nodes::node_geo_input_mesh_island_cc::IslandFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceVertexCountFieldInput, blender::nodes::node_geo_input_mesh_face_neighbors_cc::FaceNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_face_is_planar_cc::PlanarFieldInput, blender::nodes::node_geo_input_mesh_face_area_cc::FaceAreaFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgePositionFieldInput, blender::nodes::node_geo_input_mesh_edge_vertices_cc::EdgeVerticesFieldInput, blender::nodes::node_geo_input_mesh_edge_neighbors_cc::EdgeNeighborCountFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::SignedAngleFieldInput, blender::nodes::node_geo_input_mesh_edge_angle_cc::AngleFieldInput, blender::nodes::node_geo_input_instance_scale_cc::VectorFieldInput, blender::nodes::node_geo_input_instance_rotation_cc::VectorFieldInput, blender::nodes::node_geo_input_curve_handles_cc::HandlePositionFieldInput, blender::nodes::node_geo_edge_paths_to_selection_cc::PathToEdgeSelectionFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::IndexOnSplineFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveLengthParameterFieldInput, blender::nodes::node_geo_curve_spline_parameter_cc::CurveParameterFieldInput, blender::nodes::node_geo_curve_handle_type_selection_cc::HandleTypeFieldInput, blender::nodes::node_geo_curve_endpoint_selection_cc::EndpointFieldInput, blender::nodes::node_geo_accumulate_field_cc::TotalFieldInput< T >, blender::nodes::node_geo_accumulate_field_cc::AccumulateFieldInput< T >, blender::fn::IndexFieldInput, blender::bke::CurveLengthFieldInput, blender::bke::AnonymousAttributeFieldInput, blender::bke::NormalFieldInput, blender::bke::IDAttributeFieldInput, and blender::bke::AttributeFieldInput.

Definition at line 600 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 72 of file FN_field.hh.

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


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