FCDocument/FCDPhysicsParameter.hpp

00001 /*
00002     Copyright (C) 2005-2006 Feeling Software Inc.
00003     MIT License: http://www.opensource.org/licenses/mit-license.php
00004 */
00005 
00006 #include "StdAfx.h"
00007 #include "FCDocument/FCDocument.h"
00008 #include "FUtils/FUDaeWriter.h"
00009 using namespace FUDaeWriter;
00010 
00011 template <class T>
00012 FCDPhysicsParameter<T>::FCDPhysicsParameter(FCDocument* document, const string& ref) : FCDPhysicsParameterGeneric(document, ref)
00013 {
00014     value = NULL;
00015 }
00016 
00017 template <class T>
00018 FCDPhysicsParameter<T>::~FCDPhysicsParameter()
00019 {
00020     SAFE_DELETE(value);
00021 }
00022 
00023 // Clone
00024 template <class T>
00025 FCDPhysicsParameterGeneric* FCDPhysicsParameter<T>::Clone()
00026 {
00027     FCDPhysicsParameterGeneric *clone = new FCDPhysicsParameter<T>(GetDocument(), reference);
00028     ((FCDPhysicsParameter<T>*)clone)->value = new T(*value);
00029     return clone;
00030 }
00031 
00032 template <class T>
00033 void FCDPhysicsParameter<T>::SetValue(T val)
00034 {
00035     if(value)
00036     {
00037         SAFE_DELETE(value);
00038     }
00039     value = new T();
00040     *value = val;
00041 }
00042 
00043 
00044 template <class T>
00045 void FCDPhysicsParameter<T>::SetValue(T* val)
00046 {
00047     if(value)
00048     {
00049         SAFE_DELETE(value);
00050     }
00051     value = val;
00052 }
00053 
00054 // Flattening: overwrite the target parameter with this parameter
00055 template <class T>
00056 void FCDPhysicsParameter<T>::Overwrite(FCDPhysicsParameterGeneric* target)
00057 {
00058     ((FCDPhysicsParameter<T>*) target)->SetValue(value);
00059 }
00060 
00061 /*
00062 // Parse in this Collada parameter from the xml node tree
00063 template <class T>
00064 FUStatus FCDPhysicsParameter<T>::LoadFromXML(xmlNode* parameterNode)
00065 {
00066     FUStatus status;
00067     return status;
00068 }
00069 */
00070 // Write out this ColladaFX parameter to the xml node tree
00071 template <class T>
00072 xmlNode* FCDPhysicsParameter<T>::WriteToXML(xmlNode* parentNode) const
00073 {
00074     xmlNode* parameterNode = FUXmlWriter::AddChild(parentNode, reference.c_str());
00075     //TODO: complete
00076     return parameterNode;
00077 }

Generated on Fri May 12 16:44:39 2006 for FCollada by  doxygen 1.4.6-NO