Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/importer/oif/object_information_file.cc @ 10772

Last change on this file since 10772 was 10314, checked in by patrick, 17 years ago

merged branche mount_point to trunk. this will add mount point abilities, bsp transparency fix and some other smaller stuff to this trunk

File size: 3.1 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: Patrick Boenzli patrick@orxonox.net
13   co-programmer:
14*/
15
16//#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_
17
18#include "object_information_file.h"
19
20#include "resource_oif.h"
21
22#include "util/loading/factory.h"
23#include "util/loading/load_param_xml.h"
24
25
26
27/**
28 * constructor
29 */
30OIFData::OIFData()
31{
32  this->_root = NULL;
33}
34
35
36/**
37 * constructor
38 * @param fileName name of the file
39 */
40OIFData::OIFData(const std::string& fileName)
41{
42  this->_root = NULL;
43  this->load(fileName);
44}
45
46
47OIFData::~OIFData()
48{
49  if( this->_root)
50    delete this->_root;
51}
52
53
54/**
55 * loading the data
56 * @param fileName file name where the data can be found
57 */
58void OIFData::load(const std::string& fileName)
59{
60  if( fileName.empty())
61  {
62    PRINTF(1)("No filename specified for object information loading");
63    return;
64  }
65
66  TiXmlDocument* XMLDoc = new TiXmlDocument(fileName);
67  // load the campaign document
68  if( !XMLDoc->LoadFile(fileName))
69  {
70    // report an error
71    PRINTF(1)("Could not load XML File %s: %s @ %d:%d\n", fileName.c_str(), XMLDoc->ErrorDesc(), XMLDoc->ErrorRow(), XMLDoc->ErrorCol());
72    return;
73  }
74
75  // check basic validity
76  this->_root = XMLDoc->RootElement();
77  assert( this->_root != NULL);
78
79  if( strcmp( this->_root->Value(), "ObjectInformationFile"))
80  {
81    // report an error
82    PRINTF(1)("Specified XML File is not an orxonox object information file (<ObjectInformationFile> element missing)\n");
83    return;
84  }
85
86//   this->initMountPoint( this->_root);
87}
88
89
90/**
91 * constructor
92 * @param fileName name of the file
93 */
94ObjectInformationFile::ObjectInformationFile()
95  : data(new OIFData)
96{
97  this->init();
98}
99
100/**
101 * constructor
102 * @param fileName name of the file
103 */
104ObjectInformationFile::ObjectInformationFile(const std::string& fileName)
105  : data(new OIFData(fileName))
106{
107  // load the oif file
108  this->data = ResourceOIF(fileName).data;
109
110  this->init();
111}
112
113
114/**
115 * copy constructor
116 * @param oif instance to copy from
117*/
118ObjectInformationFile::ObjectInformationFile(const ObjectInformationFile& oif)
119  :data(oif.data)
120{
121  this->init();
122}
123
124
125/**
126 * the definition of the assignment operator
127 * @param oif
128 * @return
129 */
130ObjectInformationFile& ObjectInformationFile::operator=(const ObjectInformationFile& oif)
131{
132  this->init();
133  this->data = oif.data;
134
135  return *this;
136}
137
138/**
139 * initizlizing function
140 */
141void ObjectInformationFile::init()
142{
143
144}
145
146
147void ObjectInformationFile::load(const std::string& fileName)
148{
149  this->data = OIFData::Pointer(new OIFData(fileName));
150}
151
152
153/**
154 * standard deconstructor
155*/
156ObjectInformationFile::~ObjectInformationFile ()
157{
158  // delete what has to be deleted here
159}
160
161
162/**
163 * this initializes the mount point
164 * @param mountPoint to be initialized
165 */
166// void ObjectInformationFile::initMountPoint(MountPoint* mountPoint)
167// {
168//   TiXmlElement* root = this->data->root();
169//
170// }
171
Note: See TracBrowser for help on using the repository browser.