00001
00002
00003
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
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
00055 template <class T>
00056 void FCDPhysicsParameter<T>::Overwrite(FCDPhysicsParameterGeneric* target)
00057 {
00058 ((FCDPhysicsParameter<T>*) target)->SetValue(value);
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 template <class T>
00072 xmlNode* FCDPhysicsParameter<T>::WriteToXML(xmlNode* parentNode) const
00073 {
00074 xmlNode* parameterNode = FUXmlWriter::AddChild(parentNode, reference.c_str());
00075
00076 return parameterNode;
00077 }