|
Blender V4.3
|
#include <FN_field.hh>
Inherited by blender::fn::FieldConstant, blender::fn::FieldInput, and blender::fn::FieldOperation.
Public Member Functions | |
| virtual const CPPType & | output_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 FieldInputs > | field_inputs_ |
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.
|
inline |
Definition at line 549 of file FN_field.hh.
|
virtualdefault |
|
inline |
Definition at line 556 of file FN_field.hh.
References field_inputs_.
Referenced by blender::nodes::node_geo_tool_set_face_set_cc::is_constant_zero(), blender::bke::SocketValueVariant::is_context_dependent_field(), blender::nodes::node_geo_set_shade_smooth_cc::try_removing_sharp_attribute(), and blender::nodes::node_geo_curve_topology_points_of_curve_cc::use_start_point_special_case().
|
inline |
Definition at line 561 of file FN_field.hh.
References field_inputs_.
Referenced by blender::fn::FieldInput::FieldInput().
|
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().
|
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().
|
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.
|
inline |
Definition at line 551 of file FN_field.hh.
Referenced by blender::fn::build_multi_function_procedure_for_fields(), blender::fn::evaluate_fields(), and blender::fn::preprocess_field_tree().
|
pure virtual |
Implemented in blender::fn::FieldConstant, blender::fn::FieldInput, and blender::fn::FieldOperation.
|
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().