libmoldeo (Moldeo 1.0 Core)  1.0
libmoldeo is the group of objects and functions that executes the basic operations of Moldeo 1.0 Platform.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
moResourceManager.cpp
Go to the documentation of this file.
1 /*******************************************************************************
2 
3  moResourceManager.cpp
4 
5  ****************************************************************************
6  * *
7  * This source is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * This code is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
15  * General Public License for more details. *
16  * *
17  * A copy of the GNU General Public License is available on the World *
18  * Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
19  * obtain it by writing to the Free Software Foundation, *
20  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21  * *
22  ****************************************************************************
23 
24  Copyright(C) 2006 Fabricio Costa
25 
26  Authors:
27  Fabricio Costa
28 
29 
30 *******************************************************************************/
31 #include "gst/gst.h"
32 #include "moResourceManager.h"
33 #include <moDebugManager.h>
34 #include <moNetManager.h>
35 #include <moFileManager.h>
36 #include <moFilterManager.h>
37 #include <moTimeManager.h>
38 #include <moDataManager.h>
39 #include <moMathManager.h>
40 #include <moShaderManager.h>
41 #include <moFBManager.h>
42 #include <moGLManager.h>
43 #include <moDecoderManager.h>
44 #include <moSoundManager.h>
45 #include <mo3dModelManager.h>
46 #include <moFontManager.h>
47 #include <moGUIManager.h>
48 #include <moScriptManager.h>
49 
50 #include "moArray.h"
52 
54  SetType(MO_OBJECT_RESOURCE);
55  m_ResourceType = MO_RESOURCETYPE_UNDEFINED;
56 
57 }
58 
60 
61 }
62 
63 
65 
66  if (!(GetConfigName()==moText(""))) {
67  if (moMoldeoObject::Init()) {
69  return true;
70  } else {
71  MODebug2->Error("Errors creating connectors or loading param values for " + GetConfigName() + " configuration file");
72  return false;
73  }
74  }
75  }
76 
77  MODebug2->Message("No " + GetName() + " configuration file defined. Continue.");
78 
79  return true;
80 
81 }
82 
84 
85  return true;
86 }
87 
90 
91  return m_ResourceType;
92 
93 }
94 
95 void
97 
98  m_ResourceType = p_restype;
99 
100 }
101 
102 
103 //===========================================
104 //
105 // moResourceManager
106 //
107 //===========================================
108 
109 
110 
112 
113  m_Resources.Init( 0, NULL );
114 
115  //predefined managers
116  MOFileMan = NULL;
117  MOFilterMan = NULL;
118  MONetMan = NULL;
119  MOTimeMan = NULL;
120  MODataMan = NULL;
121  MOFBMan = NULL;
122  MOGLMan = NULL;
123  MORenderMan = NULL;
124  MOShaderMan = NULL;
125  MOMathMan = NULL;
126  MOFontMan = NULL;
127  MOGuiMan = NULL;
128  MOScriptMan = NULL;
129  MOTextureMan = NULL;
130  MOSoundMan = NULL;
131  MOVideoMan = NULL;
132  MOModelMan = NULL;
133  MODebugMan = NULL;
134 }
135 
137 }
138 
139 moResource*
140 moResourceManager::NewResource( const moText& p_resname, const moText& p_configname, const moText& p_labelname, const moText& p_keyname, int paramindex, int valueindex, bool p_activate ) {
141 
142  moResource* pResource = moNewResource( p_resname, m_Plugins );
143  if (pResource) {
144 
145  moMobDefinition MDef = pResource->GetMobDefinition();
146 
147  MDef.SetConsoleParamIndex(paramindex);
148  MDef.SetConsoleValueIndex(valueindex);
149  MDef.SetConfigName( p_configname );
150  MDef.SetLabelName( p_labelname );
151  MDef.SetActivate(p_activate);
152  MDef.SetKeyName(p_keyname);
153 
154  pResource->SetMobDefinition(MDef);
155  AddResource( pResource );
156  } else {
157  MODebug2->Error("moResourceManager::NewResource Error creating resource "+p_resname);
158  }
159 
160  return pResource;
161 
162 }
163 
164 MOboolean
166 
167  if (m_pResource) {
168  m_pResource->SetResourceManager(this);
169  m_Resources.Add(m_pResource);
170  }
171 
172  return (m_pResource!=NULL && m_Resources.GetRef(m_Resources.Count()-1)==m_pResource);
173 }
174 
175 MOboolean
177 
178  moResource* pResource;
179  pResource = m_Resources.GetRef(p_ID);
181  if (pResource) {
182  if (moDeleteResource( pResource, m_Plugins )) {
186  m_Resources.Remove(p_ID);
187  return true;
188  }
189  }
190  return false;
191 }
192 
193 moResources&
195  return m_Resources;
196 }
197 
198 moResource*
200 
201  return m_Resources.GetRef(p_index);
202 
203 }
204 
205 
206 MOint
208 
209  for(MOuint i=0;i<m_Resources.Count();i++) {
210  if ( m_Resources.GetRef(i) != NULL ) {
211  if ( m_Resources.GetRef(i)->GetLabelName() == p_labelname) {
212  return i;
213  }
214  }
215  }
216  return -1;//not found
217 }
218 
219 moText
221 
222  if ( m_Resources.Get(p_index) != NULL ) {
223  return m_Resources.GetRef(p_index)->GetName();
224  }
225 
226  return moText("");//not found
227 
228 }
229 
230 moText
232 
233  if ( m_Resources.Get(p_index) != NULL ) {
234  return m_Resources.GetRef(p_index)->GetLabelName();
235  }
236 
237  return moText("");//not found
238 
239 }
240 
241 
244  if ( m_Resources.GetRef(p_index) ) {
245  return m_Resources.GetRef(p_index)->GetResourceType();
246  } else return MO_RESOURCETYPE_UNDEFINED;
247 }
248 
249 moResource*
251 {
252  for(MOuint i=0;i<m_Resources.Count();i++) {
253  if ( m_Resources.GetRef(i) ) {
254  if ( m_Resources.GetRef(i)->GetResourceType() == p_type) {
255  return m_Resources.GetRef(i);
256  }
257  }
258  }
259  return NULL;//not found
260 }
261 
262 MOboolean
264  const moText& p_apppath,
265  const moText& p_datapath,
266  moConfig& p_consoleconfig,
267  MOint p_render_to_texture_mode,
268  MOint p_screen_width,
269  MOint p_screen_height,
270  MOint p_render_width,
271  MOint p_render_height,
272  MO_HANDLE p_OpWindowHandle,
273  MO_DISPLAY p_Display) {
274 
275  if ( GetResourceByType( MO_RESOURCETYPE_DEBUG ) == NULL )
276  AddResource( new moDebugManager() );
277 
278  if ( GetResourceByType( MO_RESOURCETYPE_NET ) == NULL )
279  AddResource( new moNetManager() );
280 
281  if ( GetResourceByType( MO_RESOURCETYPE_FILE ) == NULL )
282  AddResource( new moFileManager() );
283 
284  if ( GetResourceByType( MO_RESOURCETYPE_FILTER ) == NULL )
285  AddResource( new moFilterManager() );
286 
287  if ( GetResourceByType( MO_RESOURCETYPE_TIME ) == NULL )
288  AddResource( new moTimeManager() );
289 
290  if ( GetResourceByType( MO_RESOURCETYPE_DATA ) == NULL )
291  AddResource( new moDataManager() );
292 
293  if ( GetResourceByType( MO_RESOURCETYPE_MATH ) == NULL )
294  AddResource( new moMathManager() );
295 
296  if ( GetResourceByType( MO_RESOURCETYPE_SHADER ) == NULL )
297  AddResource( new moShaderManager() );
298 
299  if ( GetResourceByType( MO_RESOURCETYPE_FB )==NULL )
300  AddResource( new moFBManager() );
301 
302  if ( GetResourceByType( MO_RESOURCETYPE_GL )==NULL )
303  AddResource( new moGLManager() );
304 
306  AddResource( new moDecoderManager() );
307 
308 
310  AddResource( new moRenderManager() );
311 
313  AddResource( new moTextureManager() );
314 
316  AddResource( new moSoundManager() );
317 
319  AddResource( new moVideoManager() );
320 
322  AddResource( new mo3dModelManager() );
323 
325  AddResource( new moFontManager() );
326 
327  if ( GetResourceByType( MO_RESOURCETYPE_GUI )==NULL )
328  AddResource( new moGUIManager() );
329 
331  AddResource( new moScriptManager() );
332 
334  moText resname;
335  moText cfname;
336  moText lblname;
337 
339  moParam& presources( p_consoleconfig.GetParam(moText("resources")) );
340 
341  presources.FirstValue();
342 
343  for(MOuint r=0; r<presources.GetValuesCount(); r++) {
344 
345  moResource* pResource = NULL;
346 
347  resname = presources[MO_SELECTED][MO_CFG_RESOURCE].Text();
348  cfname = presources[MO_SELECTED][MO_CFG_RESOURCE_CONFIG].Text();
349  lblname = presources[MO_SELECTED][MO_CFG_RESOURCE_LABEL].Text();
350 
351  MOint rid = GetResourceIndex( lblname );
352 
353  if(rid>-1) pResource = GetResource(rid);
354 
355  if (pResource) {
356  pResource->SetConfigName(cfname);
357  pResource->SetLabelName(lblname);
358  pResource->SetConsoleParamIndex( presources.GetParamDefinition().GetIndex() );
359  pResource->SetConsoleValueIndex( r );
360  }
361  presources.NextValue();
362  }
363 
364  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Embedded Resources."));
366  if (MODebugMan) {
367  MODebugMan->Activate();
368  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Debug Man Resource."));
369  if (!MODebugMan->Init())
370  MODebug2->Error(moText("moResourceManager:: Debug Man. Initialization Error."));
371  } else {
372  MODebug2->Error(moText("moResourceManager:: Debug Man. Creation Error."));
373  }
374 
376  if (MONetMan) {
377  MONetMan->Activate();
378  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Net Man Resource."));
379  if (!MONetMan->Init())
380  MODebug2->Error(moText("moResourceManager:: Net Man. Initialization Error."));
381  } else {
382  MODebug2->Error(moText("moResourceManager:: Net Man. Creation Error."));
383  }
384 
386  if (MOFileMan) {
387  MOFileMan->Activate();
388  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing File Man Resource."));
389  if (!MOFileMan->Init())
390  MODebug2->Error(moText("moResourceManager:: File Man Initialization Error."));
391  } else {
392  MODebug2->Error(moText("moResourceManager:: File Man Creation Error."));
393  }
394 
395 
397  if (MODataMan) {
398  MODataMan->Activate();
399  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Data Man Resource."));
400  if (!MODataMan->Init( p_apppath, p_datapath, p_consoleconfig.GetName()))
401  MODebug2->Error(moText("moResourceManager:: Data Man Initialization Error."));
402  } else {
403  MODebug2->Error(moText("moResourceManager:: Data Man Creation Error."));
404  }
405 
407  if (MOFilterMan) {
408  MOFilterMan->Activate();
409  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Filter Man Resource."));
410  if (!MOFilterMan->Init())
411  MODebug2->Error(moText("moResourceManager:: Filter Man Initialization Error."));
412  } else {
413  MODebug2->Error(moText("moResourceManager:: Filter Man Creation Error."));
414  }
415 
417  if (MOTimeMan) {
418  MOTimeMan->Activate();
419  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Time Man Resource."));
420  if (!MOTimeMan->Init())
421  MODebug2->Error(moText("moResourceManager:: Time Man Initialization Error."));
422  } else {
423  MODebug2->Error(moText("moResourceManager:: Time Man Creation Error."));
424  }
425 
427  if (MOGLMan) {
428  MOGLMan->Activate();
429  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing GL Man Resource."));
430  if (!MOGLMan->Init())
431  MODebug2->Error(moText("moResourceManager:: GL Man Initialization Error."));
432  } else {
433  MODebug2->Error(moText("moResourceManager:: GL Man Creation Error."));
434  }
435 
437  if (MOFBMan) {
438  MOFBMan->Activate();
439  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing FrameBuffer Man Resource."));
440  if (!MOFBMan->Init())
441  MODebug2->Error(moText("moResourceManager:: FrameBuffer Man Initialization Error."));
442  } else {
443  MODebug2->Error(moText("moResourceManager:: FrameBuffer Man Creation Error."));
444  }
445 
447  if (MOTextureMan) {
448  MOTextureMan->Activate();
449  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Texture Man Resource."));
450  if (!MOTextureMan->Init())
451  MODebug2->Error(moText("moResourceManager:: Texture Man Initialization Error."));
452  } else {
453  MODebug2->Error(moText("moResourceManager:: Texture Man Creation Error."));
454  }
455 
457  if (MODecoderMan) {
458  MODecoderMan->Activate();
459  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Decoder Manager Resource."));
460  if (!MODecoderMan->Init())
461  MODebug2->Error(moText("moResourceManager:: Decoder Manager Initialization Error."));
462  } else {
463  MODebug2->Error(moText("moResourceManager:: Decoder Manager Creation Error."));
464  }
465 
466 
474  if (MORenderMan) {
475  MORenderMan->Activate();
476  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Render Man Resource."));
477  if (!MORenderMan->Init( (moRenderManagerMode)p_render_to_texture_mode, p_screen_width, p_screen_height, p_render_width, p_render_height ))
478  MODebug2->Error(moText("moResourceManager:: Render Man Initialization Error."));
479  } else {
480  MODebug2->Error(moText("moResourceManager:: Render Man Creation Error."));
481  }
482 
483  if (MOShaderMan) {
484  MOShaderMan->Activate();
485  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Shader Man Resource."));
486  if (!MOShaderMan->Init())
487  MODebug2->Error(moText("moResourceManager:: Shader Man Initialization Error."));
488  } else {
489  MODebug2->Error(moText("moResourceManager:: Shader Man Creation Error."));
490  }
491 
493  if (MOMathMan) {
494  MOMathMan->Activate();
495  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Math Man Resource."));
496  if (!MOMathMan->Init())
497  MODebug2->Error(moText("moResourceManager:: Math Man Initialization Error."));
498  } else {
499  MODebug2->Error(moText("moResourceManager:: Math Man Creation Error."));
500  }
501 
503  if (MOFontMan) {
504  MOFontMan->Activate();
505  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Font Man Resource."));
506  if (!MOFontMan->Init())
507  MODebug2->Error(moText("moResourceManager:: Font Man Initialization Error."));
508  } else {
509  MODebug2->Error(moText("moResourceManager:: Font Man Creation Error."));
510  }
511 
513  if (MOGuiMan) {
514  MOGuiMan->Activate();
515  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing GUI Man Resource."));
516  if (!MOGuiMan->Init( p_OpWindowHandle, p_Display ))
517  MODebug2->Error(moText("moResourceManager:: GUI Man Initialization Error."));
518  } else {
519  MODebug2->Error(moText("moResourceManager:: GUI Man Creation Error."));
520  }
521 
523  if (MOSoundMan) {
524  MOSoundMan->Activate();
525  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Sound Man Resource."));
526  if (!MOSoundMan->Init())
527  MODebug2->Error(moText("moResourceManager:: Sound Man Initialization Error."));
528  } else {
529  MODebug2->Error(moText("moResourceManager:: Sound Man Creation Error."));
530  }
531 
533  if (MOVideoMan) {
534  MOVideoMan->Activate();
535  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Video Man Resource."));
536  if (!MOVideoMan->Init()) {
537  MODebug2->Error(moText("moResourceManager:: Video Man Initialization Error."));
538  }
539  } else {
540  MODebug2->Error(moText("moResourceManager:: Video Man Creation Error."));
541  }
542 
544  if (MOModelMan) {
545  MOModelMan->Activate();
546  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Model Man Resource."));
547  if (!MOModelMan->Init())
548  MODebug2->Error(moText("moResourceManager:: Model Man Initialization Error."));
549  } else {
550  MODebug2->Error(moText("moResourceManager:: Model Man Creation Error."));
551  }
552 
554  if (MOScriptMan) {
555  MOScriptMan->Activate();
556  if (MODebug2) MODebug2->Message(moText("moResourceManager::Init > Initializing Script Man Resource."));
557  if (!MOScriptMan->Init()) {
558  MODebug2->Error(moText("moResourceManager:: Script Man Initialization Error."));
559  }
560  } else {
561  MODebug2->Error(moText("moResourceManager:: Script Man Creation Error."));
562  }
563 
564  m_Plugins.Init( 0, NULL);
565 
566  m_bInitialized = true;
567 
568  if (MODebug2) MODebug2->Message(moText("moResourceManager:: Embedded Resources Ready."));
569 
570  return Initialized();
571 }
572 
573 MOboolean
575 
576  for(MOuint i=0; i<m_Resources.Count(); i++) {
577  if (m_Resources[i]) {
578  m_Resources[i]->Finish();
579  }
580  }
581 
582  for(MOuint i=0; i<m_Resources.Count(); i++) {
583  if (m_Resources[i]) {
584  delete m_Resources[i];
585  }
586  }
587 
588  MOFileMan = NULL;
589  MOFilterMan = NULL;
590  MONetMan = NULL;
591  MOTimeMan = NULL;
592  MODataMan = NULL;
593  MOFBMan = NULL;
594  MOGLMan = NULL;
595  MORenderMan = NULL;
596  MOShaderMan = NULL;
597  MOMathMan = NULL;
598  MOFontMan = NULL;
599  MOGuiMan = NULL;
600  MOScriptMan = NULL;
601  MOTextureMan = NULL;
602  MOSoundMan = NULL;
603  MOVideoMan = NULL;
604  MOModelMan = NULL;
605  MODebugMan = NULL;
606  MODecoderMan = NULL;
607 
608  m_Resources.Empty();
609 
610  m_bInitialized = false;
611 
612  return true;
613 }
614 
Manejador de archivos.
moResource * GetResourceByType(moResourceType p_type)
MOboolean Initialized()
Pregunta si está inicializado.
Definition: moAbstract.cpp:153
moResource * GetResource(MOint p_index)
virtual MOboolean Init()
const moText & GetName()
Devuelve el nombre del archivo de configuración
Definition: moConfig.h:234
void Error(moText p_text)
Anuncia y registra un error.
Definition: moAbstract.cpp:79
virtual ~moResource()
Recurso ( objeto para cargar y manipular objetos físicos de datos de imágenes, audio, video, 3d, 2d, fuentes, shaders y de cualquier otro tipo extendible por un plugin )
void SetConfigName(const moText &p_configname)
virtual MOboolean CreateConnectors()
moRenderManagerMode
moResourceType
Tipos de recursos que se pueden implementar.
#define MOboolean
Definition: moTypes.h:385
virtual void Activate()
virtual MOboolean Init()
Administrador de sonidos.
Administrador de recursos GUI.
Definition: moGUIManager.h:646
void SetResourceType(moResourceType p_restype)
LIBMOLDEO_API bool moDeleteResource(moResource *Resource, moResourcePluginsArray &plugins)
virtual MOboolean Init()
void SetLabelName(const moText &p_labelname)
Fija la etiqueta de este objeto.
const moText & GetName() const
virtual MOboolean Init()
virtual void SetConsoleValueIndex(MOint p_valueindex)
administrator de fuentes
virtual MOboolean Init()
Inicializa el objeto.
Definition: moAbstract.cpp:141
virtual MOboolean Init()
Administrador de scripts (LUA)
virtual MOboolean Init()
#define MO_CFG_RESOURCE_LABEL
clase de para manejar textos
Definition: moText.h:75
void SetConsoleValueIndex(MOint p_valueindex)
moText GetResourceLabelName(MOint p_index)
Clase Base Descriptiva de un Objeto Moldeo.
virtual MOboolean Init()
Dispositivo de entrada/salida, típicamente, interfaces humanas de IO y datos ( teclado, mouse, tableta, tcp, udp, serial )
Definition: moTypes.h:532
MOboolean RemoveResource(MOint p_index)
void SetConfigName(const moText &p_configname)
Fijar el nombre del archivo de configuración
moText0 moText
Definition: moText.h:291
const moMobDefinition & GetMobDefinition() const
#define MOint
Definition: moTypes.h:388
virtual MOboolean Init()
moResource * NewResource(const moText &p_resname, const moText &p_configname, const moText &p_labelname, const moText &p_keyname, int paramindex=-1, int valueindex=-1, bool p_activate=true)
moText GetResourceName(MOint p_index)
virtual MOboolean Init()
virtual MOboolean Init()
virtual MOboolean Init()
Definition: moFBManager.cpp:54
void SetKeyName(const moText &p_keyname)
Fija la etiqueta del padre de este objeto.
void SetLabelName(const moText &p_labelname)
moResourceType GetResourceType()
Clase que implementa un administrador de shaders.
manejador de operaciones comunes de Open GL
Definition: moGLManager.h:154
static moDebug * MODebug2
Clase de impresión de errores para depuración
Definition: moAbstract.h:225
void SetConsoleParamIndex(MOint p_paramindex)
virtual MOboolean Finish()
#define MO_CFG_RESOURCE
Clase para el manejo de los temporizadores en Moldeo.
Definition: moTimeManager.h:64
virtual MOboolean Init()
#define MO_SELECTED
Definition: moConfig.h:44
virtual MOboolean Init(moRenderManagerMode p_render_to_texture_mode, MOint p_screen_width, MOint p_screen_height, MOint p_render_width, MOint p_render_height)
virtual MOboolean Init()
Inicialización
moParam & GetParam(MOint p_paramindex=-1)
Devuelve el parámetro por índice.
Definition: moConfig.cpp:984
virtual MOboolean Init()
const moText & GetConfigName() const
virtual MOboolean Init()
moResources & Resources()
virtual void SetConsoleParamIndex(MOint p_paramindex)
MOboolean AddResource(moResource *m_pResource)
virtual MOboolean Finish()
#define MOuint
Definition: moTypes.h:387
void SetMobDefinition(const moMobDefinition &p_MobDef)
virtual MOboolean Init()
void FirstValue()
Definition: moParam.cpp:1254
moResourceType GetResourceType(MOint p_index)
MOboolean m_bInitialized
Valor de inicialización
Definition: moAbstract.h:223
void SetActivate(bool p_activate)
Fija el modo de activación al inicio del proyecto.
moDefineDynamicArray(moResources) moResource
LIBMOLDEO_API moResource * moNewResource(moText resource_name, moResourcePluginsArray &plugins)
MOint GetResourceIndex(moText p_labelname)
void Message(moText p_text)
Anuncia un mensaje al usuario además de guardarlo en el log de texto.
Definition: moAbstract.cpp:114
virtual MOboolean Init()
virtual MOboolean Init()
#define MO_CFG_RESOURCE_CONFIG
void SetResourceManager(moResourceManager *p_pResourceManager)
almacena la configuración de los parámetros de un objeto en un archivo XML
Definition: moConfig.h:193
virtual MOboolean Init()
MOboolean Init()