Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_input_curve_handles.cc
| Show First 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | public: | ||||
| bool is_equal_to(const fn::FieldNode &other) const override | bool is_equal_to(const fn::FieldNode &other) const override | ||||
| { | { | ||||
| if (const HandlePositionFieldInput *other_handle = | if (const HandlePositionFieldInput *other_handle = | ||||
| dynamic_cast<const HandlePositionFieldInput *>(&other)) { | dynamic_cast<const HandlePositionFieldInput *>(&other)) { | ||||
| return relative_ == other_handle->relative_ && left_ == other_handle->left_; | return relative_ == other_handle->relative_ && left_ == other_handle->left_; | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| std::optional<eAttrDomain> preferred_domain(const CurvesGeometry & /*curves*/) const | |||||
| { | |||||
| return ATTR_DOMAIN_POINT; | |||||
| } | |||||
| }; | }; | ||||
| static void node_geo_exec(GeoNodeExecParams params) | static void node_geo_exec(GeoNodeExecParams params) | ||||
| { | { | ||||
| Field<bool> relative = params.extract_input<Field<bool>>("Relative"); | Field<bool> relative = params.extract_input<Field<bool>>("Relative"); | ||||
| Field<float3> left_field{std::make_shared<HandlePositionFieldInput>(relative, true)}; | Field<float3> left_field{std::make_shared<HandlePositionFieldInput>(relative, true)}; | ||||
| Field<float3> right_field{std::make_shared<HandlePositionFieldInput>(relative, false)}; | Field<float3> right_field{std::make_shared<HandlePositionFieldInput>(relative, false)}; | ||||
| Show All 18 Lines | |||||