From 552d15c97698ac4270c462385a9b111f6e8329c3 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 25 Aug 2017 22:51:44 +0200 Subject: Cycles: Add utility function to remove given attribute --- intern/cycles/render/attribute.cpp | 10 ++++++++++ intern/cycles/render/attribute.h | 2 ++ 2 files changed, 12 insertions(+) (limited to 'intern/cycles/render') diff --git a/intern/cycles/render/attribute.cpp b/intern/cycles/render/attribute.cpp index e157a385904..9dff18691cd 100644 --- a/intern/cycles/render/attribute.cpp +++ b/intern/cycles/render/attribute.cpp @@ -502,6 +502,16 @@ Attribute *AttributeSet::find(AttributeRequest& req) return find(req.std); } +void AttributeSet::remove(Attribute *attribute) +{ + if(attribute->std == ATTR_STD_NONE) { + remove(attribute->name); + } + else { + remove(attribute->std); + } +} + void AttributeSet::resize(bool reserve_only) { foreach(Attribute& attr, attributes) { diff --git a/intern/cycles/render/attribute.h b/intern/cycles/render/attribute.h index a64eb6542d5..d15ee401a72 100644 --- a/intern/cycles/render/attribute.h +++ b/intern/cycles/render/attribute.h @@ -120,6 +120,8 @@ public: Attribute *find(AttributeRequest& req); + void remove(Attribute *attribute); + void resize(bool reserve_only = false); void clear(); }; -- cgit v1.2.3