#include "Model.h" namespace New3D { NodeAttributes::NodeAttributes() { currentTexOffsetX = 0; currentTexOffsetY = 0; currentTexOffset = 0; } bool NodeAttributes::Push() { //============= NodeAttribs na; //============= // check for overflow if (m_vecAttribs.size() >= 128) { return false; } na.texOffset = currentTexOffset; na.texOffsetX = currentTexOffsetX; na.texOffsetY = currentTexOffsetY; m_vecAttribs.push_back(na); return true; } bool NodeAttributes::Pop() { if (m_vecAttribs.empty()) { return false; // check for underflow } currentTexOffset = m_vecAttribs.back().texOffset; currentTexOffsetX = m_vecAttribs.back().texOffsetX; currentTexOffsetY = m_vecAttribs.back().texOffsetY; m_vecAttribs.pop_back(); return true; } bool NodeAttributes::StackLimit() { return m_vecAttribs.size() >= 1024; } void NodeAttributes::Reset() { currentTexOffset = 0; currentTexOffsetX = 0; currentTexOffsetY = 0; m_vecAttribs.clear(); } } // New3D