]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/HLAVariantRecordDataElement.cxx
math: Move lerp function into SGMisc.
[simgear.git] / simgear / hla / HLAVariantRecordDataElement.cxx
index db8f1be0aba231d12cc4205350e1f7cdd5438118..5dac6d52ba82b4b042b38fc4dcb7b4f232ff1652 100644 (file)
@@ -113,6 +113,7 @@ HLAVariantRecordDataElement::HLAVariantRecordDataElement(const HLAVariantRecordD
 
 HLAVariantRecordDataElement::~HLAVariantRecordDataElement()
 {
+    clearStamp();
 }
 
 bool
@@ -125,6 +126,7 @@ HLAVariantRecordDataElement::setAlternativeIndex(unsigned index)
         return false;
     _dataElement.swap(dataElement);
     _alternativeIndex = index;
+    setDirty(true);
     return true;
 }
 
@@ -158,12 +160,25 @@ HLAVariantRecordDataElement::getDataElementFactory()
     return _dataElementFactory;
 }
 
+void
+HLAVariantRecordDataElement::_setStamp(Stamp* stamp)
+{
+    HLAAbstractVariantRecordDataElement::_setStamp(stamp);
+    if (!_dataElement.valid())
+        return;
+    _dataElement->attachStamp(*this);
+}
+
 HLADataElement*
 HLAVariantRecordDataElement::newElement(unsigned index)
 {
     if (!_dataElementFactory.valid())
         return 0;
-    return _dataElementFactory->createElement(*this, index);
+    HLADataElement* dataElement = _dataElementFactory->createElement(*this, index);
+    if (!dataElement)
+        return 0;
+    dataElement->attachStamp(*this);
+    return dataElement;
 }
 
 }