Home | History | Annotate | Download | only in dae
      1 /*
      2 * Copyright 2006 Sony Computer Entertainment Inc.
      3 *
      4 * Licensed under the MIT Open Source License, for details please see license.txt or the website
      5 * http://www.opensource.org/licenses/mit-license.php
      6 *
      7 */
      8 
      9 #ifndef __DAE_TINYXMLPLUGIN__
     10 #define __DAE_TINYXMLPLUGIN__
     11 
     12 #include <vector>
     13 #include <list>
     14 #include <dae/daeElement.h>
     15 #include <dae/daeURI.h>
     16 #include <dae/daeIOPluginCommon.h>
     17 
     18 class TiXmlDocument;
     19 class TiXmlElement;
     20 
     21 class daeTinyXMLPlugin : public daeIOPluginCommon
     22 {
     23 public:
     24 	// Constructor / destructor
     25 	/**
     26 	 * Constructor.
     27 	 */
     28 	DLLSPEC daeTinyXMLPlugin();
     29 	/**
     30 	 * Destructor.
     31 	 */
     32 	virtual DLLSPEC ~daeTinyXMLPlugin();
     33 
     34 	// Operations
     35 	virtual DLLSPEC daeInt write(const daeURI& name, daeDocument *document, daeBool replace);
     36 
     37 	/**
     38 	 * setOption allows you to set options for this IOPlugin. Which options a plugin supports is
     39 	 * dependent on the plugin itself. There is currently no list of options that plugins are
     40 	 * suggested to implement. daeLibXML2Plugin supports only one option, "saveRawBinary". Set to
     41 	 * "true" to save float_array data as a .raw binary file. The daeRawResolver will convert the
     42 	 * data back into COLLADA domFloat_array elements upon load.
     43 	 * @param option The option to set.
     44 	 * @param value The value to set the option.
     45 	 * @return Returns DAE_OK upon success.
     46 	 */
     47 	virtual DLLSPEC daeInt setOption( daeString option, daeString value );
     48 
     49 	/**
     50 	 * getOption retrieves the value of an option from this IOPlugin. Which options a plugin supports is
     51 	 * dependent on the plugin itself.
     52 	 * @param option The option to get.
     53 	 * @return Returns the string value of the option or NULL if option is not valid.
     54 	 */
     55 	virtual DLLSPEC daeString getOption( daeString option );
     56 
     57 private:
     58 	TiXmlDocument*  m_doc;
     59 	std::list<TiXmlElement*>  m_elements;
     60 
     61 	virtual daeElementRef readFromFile(const daeURI& uri);
     62 	virtual daeElementRef readFromMemory(daeString buffer, const daeURI& baseUri);
     63 	daeElementRef readElement(TiXmlElement* tinyXmlElement, daeElement* parentElement);
     64 
     65 	void writeElement( daeElement* element );
     66 	void writeAttribute( daeMetaAttribute* attr, daeElement* element );
     67 	void writeValue( daeElement* element );
     68 };
     69 
     70 #endif //__DAE_TINYXMLPLUGIN__
     71