/* Copyright (C) 2005-2007 Feeling Software Inc. Portions of the code are: Copyright (C) 2005-2007 Sony Computer Entertainment America MIT License: http://www.opensource.org/licenses/mit-license.php */ // // FCDEffectParameterT // template FCDEffectParameterT::~FCDEffectParameterT() { } template bool FCDEffectParameterT::IsValueEqual(FCDEffectParameter* parameter) { if (!FCDEffectParameter::IsValueEqual(parameter)) return false; FCDEffectParameterT* param = (FCDEffectParameterT*) parameter; return IsEquivalent(value, param->GetValue()); } template FCDEffectParameter* FCDEffectParameterT::Clone(FCDEffectParameter* _clone) const { FCDEffectParameterT* clone = NULL; if (_clone == NULL) _clone = clone = new FCDEffectParameterT(const_cast(GetDocument())); else if (_clone->HasType(FCDEffectParameterT::GetClassType())) clone = (FCDEffectParameterT*) _clone; if (_clone != NULL) FCDEffectParameter::Clone(_clone); if (clone != NULL) clone->value = *value; return _clone; } template void FCDEffectParameterT::Overwrite(FCDEffectParameter* target) { if (target->GetType() == GetType()) { FCDEffectParameterT* s = (FCDEffectParameterT*) target; s->value = value; SetDirtyFlag(); } } // // FCDEffectParameterAnimatableT // template FCDEffectParameterAnimatableT::~FCDEffectParameterAnimatableT() { } template bool FCDEffectParameterAnimatableT::IsValueEqual(FCDEffectParameter* parameter) { if (!FCDEffectParameter::IsValueEqual(parameter)) return false; FCDEffectParameterAnimatableT* param = (FCDEffectParameterAnimatableT*) parameter; if (floatType != param->GetFloatType()) return false; return IsEquivalent(value, param->GetValue()); } template FCDEffectParameter* FCDEffectParameterAnimatableT::Clone(FCDEffectParameter* _clone) const { FCDEffectParameterAnimatableT* clone = NULL; if (_clone == NULL) _clone = clone = new FCDEffectParameterAnimatableT(const_cast(GetDocument())); else if (_clone->HasType(FCDEffectParameterAnimatableT::GetClassType())) clone = (FCDEffectParameterAnimatableT*) _clone; if (_clone != NULL) FCDEffectParameter::Clone(_clone); if (clone != NULL) { clone->floatType = floatType; clone->value = *value; } return _clone; } template void FCDEffectParameterAnimatableT::Overwrite(FCDEffectParameter* target) { if (target->GetType() == GetType()) { FCDEffectParameterAnimatableT* s = (FCDEffectParameterAnimatableT*) target; s->value = *value; SetDirtyFlag(); } }