Mercurial > hg > svcore
comparison transform/ModelTransformer.cpp @ 877:b109b88bfa85 tonioni
Callback handler for additional models at end of processing
author | Chris Cannam |
---|---|
date | Wed, 29 Jan 2014 15:58:15 +0000 |
parents | 47aa3aeb687b |
children | fe3f7f8df3a3 |
comparison
equal
deleted
inserted
replaced
876:47aa3aeb687b | 877:b109b88bfa85 |
---|---|
16 #include "ModelTransformer.h" | 16 #include "ModelTransformer.h" |
17 | 17 |
18 ModelTransformer::ModelTransformer(Input input, const Transform &transform) : | 18 ModelTransformer::ModelTransformer(Input input, const Transform &transform) : |
19 m_input(input), | 19 m_input(input), |
20 m_detached(false), | 20 m_detached(false), |
21 m_detachedAdd(false), | |
21 m_abandoned(false) | 22 m_abandoned(false) |
22 { | 23 { |
23 m_transforms.push_back(transform); | 24 m_transforms.push_back(transform); |
24 } | 25 } |
25 | 26 |
26 ModelTransformer::ModelTransformer(Input input, const Transforms &transforms) : | 27 ModelTransformer::ModelTransformer(Input input, const Transforms &transforms) : |
27 m_transforms(transforms), | 28 m_transforms(transforms), |
28 m_input(input), | 29 m_input(input), |
29 m_detached(false), | 30 m_detached(false), |
31 m_detachedAdd(false), | |
30 m_abandoned(false) | 32 m_abandoned(false) |
31 { | 33 { |
32 } | 34 } |
33 | 35 |
34 ModelTransformer::~ModelTransformer() | 36 ModelTransformer::~ModelTransformer() |
35 { | 37 { |
36 m_abandoned = true; | 38 m_abandoned = true; |
37 wait(); | 39 wait(); |
38 if (!m_detached) { | 40 if (!m_detached) { |
39 Models mine = getOutputModels(); // including any additional ones | 41 Models mine = getOutputModels(); |
40 foreach (Model *m, mine) { | 42 foreach (Model *m, mine) delete m; |
41 delete m; | 43 } |
42 } | 44 if (!m_detachedAdd) { |
45 Models mine = getAdditionalOutputModels(); | |
46 foreach (Model *m, mine) delete m; | |
43 } | 47 } |
44 } | 48 } |
45 | 49 |
46 ModelTransformer::Models | |
47 ModelTransformer::getOutputModels() | |
48 { | |
49 Models out(m_outputs); | |
50 Models add(getAdditionalOutputModels()); | |
51 foreach (Model *m, add) out.push_back(m); | |
52 return out; | |
53 } | |
54 |