mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 06:57:37 +02:00
"Clear spanners" clears the voxelized attributes, too.
This commit is contained in:
parent
40b1d2f284
commit
10588cff9f
1 changed files with 32 additions and 0 deletions
|
@ -180,8 +180,40 @@ ClearSpannersEdit::ClearSpannersEdit(const AttributePointer& attribute) :
|
||||||
attribute(attribute) {
|
attribute(attribute) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class GetSpannerAttributesVisitor : public SpannerVisitor {
|
||||||
|
public:
|
||||||
|
|
||||||
|
GetSpannerAttributesVisitor(const AttributePointer& attribute);
|
||||||
|
|
||||||
|
const QSet<AttributePointer>& getAttributes() const { return _attributes; }
|
||||||
|
|
||||||
|
virtual bool visit(Spanner* spanner);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
QSet<AttributePointer> _attributes;
|
||||||
|
};
|
||||||
|
|
||||||
|
GetSpannerAttributesVisitor::GetSpannerAttributesVisitor(const AttributePointer& attribute) :
|
||||||
|
SpannerVisitor(QVector<AttributePointer>() << attribute) {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GetSpannerAttributesVisitor::visit(Spanner* spanner) {
|
||||||
|
foreach (const AttributePointer& attribute, spanner->getVoxelizedAttributes()) {
|
||||||
|
_attributes.insert(attribute);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void ClearSpannersEdit::apply(MetavoxelData& data, const WeakSharedObjectHash& objects) const {
|
void ClearSpannersEdit::apply(MetavoxelData& data, const WeakSharedObjectHash& objects) const {
|
||||||
|
// find all the spanner attributes
|
||||||
|
GetSpannerAttributesVisitor visitor(attribute);
|
||||||
|
data.guide(visitor);
|
||||||
|
|
||||||
data.clear(attribute);
|
data.clear(attribute);
|
||||||
|
foreach (const AttributePointer& attribute, visitor.getAttributes()) {
|
||||||
|
data.clear(attribute);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetSpannerEdit::SetSpannerEdit(const SharedObjectPointer& spanner) :
|
SetSpannerEdit::SetSpannerEdit(const SharedObjectPointer& spanner) :
|
||||||
|
|
Loading…
Reference in a new issue