Skip to content

Commit 47c81db

Browse files
committed
python: add compatibility with newer versions of swig
Add overloaded methods to avoid ambiguous parameter errors in newer versions of swig. Resolves: #114
1 parent b24fcb3 commit 47c81db

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

src/lib/Partio.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,7 @@ ParticlesDataMutable* cloneSchema(const ParticlesData&, const std::map<std::stri
290290
//! To copy only the detail attributes, pass particles=false.
291291
//! If attrNameMap is provided, it is used to rename attributes during cloning.
292292
ParticlesDataMutable* clone(const ParticlesData&, bool particles=true, const std::map<std::string, std::string>* attrNameMap = nullptr);
293+
ParticlesDataMutable* clone(const ParticlesData&, bool particles, const std::map<std::string, std::string>& attrNameMap);
293294

294295
//! Provides read/write access to a particle set stored in a file
295296
//! freed with p->release()

src/lib/core/Particle.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ clone(const ParticlesData& other, bool particles, const std::map<std::string, st
164164
return p;
165165
}
166166

167+
ParticlesDataMutable*
168+
clone(const ParticlesData& other, bool particles, const std::map<std::string, std::string>& attrNameMap)
169+
{
170+
return clone(other, particles, &attrNameMap);
171+
}
167172

168173
template<ParticleAttributeType ETYPE> void
169174
printAttr(const ParticlesData* p,const ParticleAttribute& attr,const int particleIndex)

src/py/partio.i

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,13 @@ ParticlesDataMutable* cloneSchema(const ParticlesData& other, const std::map<std
638638

639639
%feature("autodoc");
640640
%feature("docstring","Clone a particle set");
641-
ParticlesDataMutable* clone(const ParticlesData& other, bool particles, const std::map<std::string, std::string>* attrNameMap=nullptr);
641+
ParticlesDataMutable* clone(const ParticlesData& other, bool particles, const std::map<std::string, std::string>& attrNameMap);
642+
643+
%pythoncode %{
644+
def clone(self, particles=True, attrNameMap=None):
645+
"""Clone a particle set"""
646+
return _partio.clone(self, particles, attrNameMap or {})
647+
%}
642648

643649
%feature("autodoc");
644650
%feature("docstring","Return string name of given attribute type");

0 commit comments

Comments
 (0)