inline float3 getDualParaboloidNormal(const float2& uv) { if(uv.x < 0.5f) { return float3(getNDC(uv, float2(0.5f, 1.f)), 1.f); } auto ndc = getNDC(uv - float2(0.5f, 0.f), float2(0.5f, 1.f)); ndc.x = -ndc.x; return float3(ndc, -1.f); }
void NDC::setMaxDepth(int maxDepth) { getNDC()._setMaxDepth(maxDepth); }
void NDC::push(const std::string& message) { getNDC()._push(message); }
std::string NDC::pop() { return getNDC()._pop(); }
void NDC::inherit(NDC::ContextStack* stack) { getNDC()._inherit(stack); }
size_t NDC::getDepth() { return getNDC()._getDepth(); }
const std::string& NDC::get() { return getNDC()._get(); }
NDC::ContextStack* NDC::cloneStack() { return getNDC()._cloneStack(); }
void NDC::clear() { getNDC()._clear(); }