Supermodel/Src/Graphics/New3D/Model.cpp

61 lines
1 KiB
C++
Raw Normal View History

#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