Differential D15954 Diff 56253 source/blender/nodes/geometry/nodes/node_geo_input_mesh_edge_angle.cc
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_input_mesh_edge_angle.cc
| Show First 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | uint64_t hash() const override | ||||
| /* Some random constant hash. */ | /* Some random constant hash. */ | ||||
| return 32426725235; | return 32426725235; | ||||
| } | } | ||||
| bool is_equal_to(const fn::FieldNode &other) const override | bool is_equal_to(const fn::FieldNode &other) const override | ||||
| { | { | ||||
| return dynamic_cast<const AngleFieldInput *>(&other) != nullptr; | return dynamic_cast<const AngleFieldInput *>(&other) != nullptr; | ||||
| } | } | ||||
| std::optional<eAttrDomain> preferred_domain(const Mesh & /*mesh*/) const override | |||||
| { | |||||
| return ATTR_DOMAIN_EDGE; | |||||
| } | |||||
| }; | }; | ||||
| class SignedAngleFieldInput final : public bke::MeshFieldInput { | class SignedAngleFieldInput final : public bke::MeshFieldInput { | ||||
| public: | public: | ||||
| SignedAngleFieldInput() : bke::MeshFieldInput(CPPType::get<float>(), "Signed Angle Field") | SignedAngleFieldInput() : bke::MeshFieldInput(CPPType::get<float>(), "Signed Angle Field") | ||||
| { | { | ||||
| category_ = Category::Generated; | category_ = Category::Generated; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | uint64_t hash() const override | ||||
| /* Some random constant hash. */ | /* Some random constant hash. */ | ||||
| return 68465416863; | return 68465416863; | ||||
| } | } | ||||
| bool is_equal_to(const fn::FieldNode &other) const override | bool is_equal_to(const fn::FieldNode &other) const override | ||||
| { | { | ||||
| return dynamic_cast<const SignedAngleFieldInput *>(&other) != nullptr; | return dynamic_cast<const SignedAngleFieldInput *>(&other) != nullptr; | ||||
| } | } | ||||
| std::optional<eAttrDomain> preferred_domain(const Mesh & /*mesh*/) const override | |||||
| { | |||||
| return ATTR_DOMAIN_EDGE; | |||||
| } | |||||
| }; | }; | ||||
| static void node_geo_exec(GeoNodeExecParams params) | static void node_geo_exec(GeoNodeExecParams params) | ||||
| { | { | ||||
| if (params.output_is_required("Unsigned Angle")) { | if (params.output_is_required("Unsigned Angle")) { | ||||
| Field<float> angle_field{std::make_shared<AngleFieldInput>()}; | Field<float> angle_field{std::make_shared<AngleFieldInput>()}; | ||||
| params.set_output("Unsigned Angle", std::move(angle_field)); | params.set_output("Unsigned Angle", std::move(angle_field)); | ||||
| } | } | ||||
| Show All 18 Lines | |||||