~s-cecilio/lomse/master

« back to all changes in this revision

Viewing changes to src/parser/lomse_model_builder.cpp

  • Committer: cecilios
  • Date: 2010-10-10 13:35:19 UTC
  • Revision ID: git-v1:2b333198c3033525d15763b84eaf79dac9fdab80
Preparing to use CMake. Updating with new code and missing files. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
//  You should have received a copy of the GNU General Public License along
14
14
//  with Lomse; if not, see <http://www.gnu.org/licenses/>.
15
15
//  
16
 
//  
17
 
//
18
16
//  For any comment, suggestion or feature request, please contact the manager of
19
17
//  the project at cecilios@users.sourceforge.net
20
18
//
23
21
#include "lomse_model_builder.h"
24
22
 
25
23
#include "lomse_document.h"
26
 
#include "lomse_document_iterator.h"
27
24
#include "lomse_internal_model.h"
28
25
#include "lomse_staffobjs_table.h"
29
26
#include "lomse_basic_model.h"
39
36
 
40
37
ImObjectsBuilder::ImObjectsBuilder(ostream& reporter)
41
38
    : m_reporter(reporter)
42
 
    , m_pBasicModel(NULL)
 
39
    , m_IModel(NULL)
43
40
{
44
 
    if (m_pBasicModel)
45
 
        delete m_pBasicModel;
 
41
    if (m_IModel)
 
42
        delete m_IModel;
46
43
}
47
44
 
48
45
ImObjectsBuilder::~ImObjectsBuilder()
49
46
{
50
47
}
51
48
 
52
 
ImoDocument* ImObjectsBuilder::create_objects(BasicModel* pBasicModel)
 
49
ImoDocument* ImObjectsBuilder::create_objects(InternalModel* IModel)
53
50
{
54
 
    m_pBasicModel = pBasicModel;
55
 
    return dynamic_cast<ImoDocument*>( pBasicModel->get_root() );
 
51
    m_IModel = IModel;
 
52
    return dynamic_cast<ImoDocument*>( IModel->get_root() );
56
53
}
57
54
 
58
55
 
70
67
{
71
68
}
72
69
 
73
 
ImoDocument* ModelBuilder::build_model(BasicModel* pBasicModel)
 
70
ImoDocument* ModelBuilder::build_model(InternalModel* IModel)
74
71
{
75
72
    ImObjectsBuilder imb(m_reporter);
76
 
    ImoDocument* pDoc = imb.create_objects(pBasicModel);
 
73
    ImoDocument* pDoc = imb.create_objects(IModel);
77
74
    int numContent = pDoc->get_num_content_items();
78
75
    for (int i = 0; i < numContent; i++)
79
76
        structurize( pDoc->get_content_item(i) );
81
78
}
82
79
 
83
80
 
84
 
//void ModelBuilder::update_model(LdpTree* pTree)
 
81
//void ModelBuilder::update_model(InternalModel* IModel)
85
82
//{
86
83
//    m_pTree = pTree;
87
84
//    DocIterator it(m_pTree);
100
97
//    }
101
98
//}
102
99
 
103
 
//void ModelBuilder::structurize(DocIterator it)
104
 
//{
105
 
//    //in future this should invoke a factory object
106
 
//
107
 
//    if ((*it)->is_type(k_score))
108
 
//    {
109
 
//        ColStaffObjsBuilder builder(m_pTree);
110
 
//        builder.build(*it);
111
 
//    }
112
 
//}
113
 
 
114
100
void ModelBuilder::structurize(ImoObj* pImo)
115
101
{
116
102
    //in future this should invoke a factory object
118
104
    ImoScore* pScore = dynamic_cast<ImoScore*>(pImo);
119
105
    if (pScore)
120
106
    {
121
 
        ColStaffObjsBuilder builder(m_pTree);
 
107
        ColStaffObjsBuilder builder;
122
108
        builder.build(pScore);
123
109
    }
124
110
}