hla: For setting data types recurse into array data elements.
This commit is contained in:
@@ -156,6 +156,21 @@ HLAArrayDataElement::getDataElement(HLADataElementIndex::const_iterator begin, H
|
||||
return dataElement->getDataElement(++begin, end);
|
||||
}
|
||||
|
||||
bool
|
||||
HLAArrayDataElement::setDataType(const HLADataType* dataType)
|
||||
{
|
||||
if (!HLAAbstractArrayDataElement::setDataType(dataType))
|
||||
return false;
|
||||
for (unsigned i = 0; i < getNumElements(); ++i) {
|
||||
HLADataElement* dataElement = getElement(i);
|
||||
if (!dataElement)
|
||||
continue;
|
||||
if (!dataElement->setDataType(getElementDataType()))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
HLAArrayDataElement::setNumElements(unsigned size)
|
||||
{
|
||||
|
||||
@@ -63,6 +63,8 @@ public:
|
||||
virtual HLADataElement* getDataElement(HLADataElementIndex::const_iterator begin, HLADataElementIndex::const_iterator end);
|
||||
virtual const HLADataElement* getDataElement(HLADataElementIndex::const_iterator begin, HLADataElementIndex::const_iterator end) const;
|
||||
|
||||
virtual bool setDataType(const HLADataType* dataType);
|
||||
|
||||
virtual bool setNumElements(unsigned size);
|
||||
virtual bool decodeElement(HLADecodeStream& stream, unsigned i);
|
||||
virtual unsigned getNumElements() const;
|
||||
|
||||
Reference in New Issue
Block a user