Cleanup: Use copy constructor for CurveEval
There is no need for a special "copy" method with a copy constructor, which will be necessary to explicitly copy attributes anyway.
This commit is contained in:
parent
330fecc9b7
commit
192a3f1a05
|
@ -482,14 +482,20 @@ class CurveEval {
|
|||
blender::Vector<SplinePtr> splines_;
|
||||
|
||||
public:
|
||||
CurveEval() = default;
|
||||
CurveEval(const CurveEval &other)
|
||||
{
|
||||
for (const SplinePtr &spline : other.splines()) {
|
||||
this->add_spline(spline->copy());
|
||||
}
|
||||
}
|
||||
|
||||
blender::Span<SplinePtr> splines() const;
|
||||
blender::MutableSpan<SplinePtr> splines();
|
||||
|
||||
void add_spline(SplinePtr spline);
|
||||
void remove_splines(blender::IndexMask mask);
|
||||
|
||||
CurveEval *copy();
|
||||
|
||||
void translate(const blender::float3 &translation);
|
||||
void transform(const blender::float4x4 &matrix);
|
||||
void bounds_min_max(blender::float3 &min, blender::float3 &max, const bool use_evaluated) const;
|
||||
|
|
|
@ -50,17 +50,6 @@ void CurveEval::remove_splines(blender::IndexMask mask)
|
|||
}
|
||||
}
|
||||
|
||||
CurveEval *CurveEval::copy()
|
||||
{
|
||||
CurveEval *new_curve = new CurveEval();
|
||||
|
||||
for (SplinePtr &spline : this->splines()) {
|
||||
new_curve->add_spline(spline->copy());
|
||||
}
|
||||
|
||||
return new_curve;
|
||||
}
|
||||
|
||||
void CurveEval::translate(const float3 &translation)
|
||||
{
|
||||
for (SplinePtr &spline : this->splines()) {
|
||||
|
|
|
@ -39,7 +39,7 @@ GeometryComponent *CurveComponent::copy() const
|
|||
{
|
||||
CurveComponent *new_component = new CurveComponent();
|
||||
if (curve_ != nullptr) {
|
||||
new_component->curve_ = curve_->copy();
|
||||
new_component->curve_ = new CurveEval(*curve_);
|
||||
new_component->ownership_ = GeometryOwnershipType::Owned;
|
||||
}
|
||||
return new_component;
|
||||
|
@ -87,7 +87,7 @@ CurveEval *CurveComponent::get_for_write()
|
|||
{
|
||||
BLI_assert(this->is_mutable());
|
||||
if (ownership_ == GeometryOwnershipType::ReadOnly) {
|
||||
curve_ = curve_->copy();
|
||||
curve_ = new CurveEval(*curve_);
|
||||
ownership_ = GeometryOwnershipType::Owned;
|
||||
}
|
||||
return curve_;
|
||||
|
@ -107,7 +107,7 @@ void CurveComponent::ensure_owns_direct_data()
|
|||
{
|
||||
BLI_assert(this->is_mutable());
|
||||
if (ownership_ != GeometryOwnershipType::Owned) {
|
||||
curve_ = curve_->copy();
|
||||
curve_ = new CurveEval(*curve_);
|
||||
ownership_ = GeometryOwnershipType::Owned;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue