Alembic: use typedefs to make it easier to handle maps/vectors

This commit is contained in:
Sybren A. Stüvel
2017-02-21 15:02:17 +01:00
parent 85672d29f2
commit 152ec791ad
2 changed files with 18 additions and 10 deletions

View File

@@ -154,13 +154,16 @@ AbcExporter::AbcExporter(Scene *scene, const char *filename, ExportSettings &set
AbcExporter::~AbcExporter() AbcExporter::~AbcExporter()
{ {
std::map<std::string, AbcTransformWriter*>::iterator it, e; /* Free xforms map */
for (it = m_xforms.begin(), e = m_xforms.end(); it != e; ++it) { m_xforms_type::iterator it_x, e_x;
delete it->second; for (it_x = m_xforms.begin(), e_x = m_xforms.end(); it_x != e_x; ++it_x) {
delete it_x->second;
} }
for (int i = 0, e = m_shapes.size(); i != e; ++i) { /* Free shapes vector */
delete m_shapes[i]; m_shapes_type::iterator it_s, e_s;
for (it_s = m_shapes.begin(), e_s = m_shapes.end(); it_s != e_s; ++it_s) {
delete *it_s;
} }
delete m_writer; delete m_writer;
@@ -314,8 +317,9 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled)
setCurrentFrame(bmain, frame - m_settings.frame_start); setCurrentFrame(bmain, frame - m_settings.frame_start);
if (shape_frames.count(frame) != 0) { if (shape_frames.count(frame) != 0) {
for (int i = 0, e = m_shapes.size(); i != e; ++i) { m_shapes_type::iterator xit, xe;
m_shapes[i]->write(); for (xit = m_shapes.begin(), xe = m_shapes.end(); xit != xe; ++xit) {
(*xit)->write();
} }
} }
@@ -323,7 +327,7 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled)
continue; continue;
} }
std::map<std::string, AbcTransformWriter *>::iterator xit, xe; m_xforms_type::iterator xit, xe;
for (xit = m_xforms.begin(), xe = m_xforms.end(); xit != xe; ++xit) { for (xit = m_xforms.begin(), xe = m_xforms.end(); xit != xe; ++xit) {
xit->second->write(); xit->second->write();
} }

View File

@@ -89,8 +89,12 @@ class AbcExporter {
ArchiveWriter *m_writer; ArchiveWriter *m_writer;
std::map<std::string, AbcTransformWriter *> m_xforms; /* mapping from name to transform writer */
std::vector<AbcObjectWriter *> m_shapes; typedef std::map<std::string, AbcTransformWriter *> m_xforms_type;
m_xforms_type m_xforms;
typedef std::vector<AbcObjectWriter *> m_shapes_type;
m_shapes_type m_shapes;
public: public:
AbcExporter(Scene *scene, const char *filename, ExportSettings &settings); AbcExporter(Scene *scene, const char *filename, ExportSettings &settings);