I followed a bit of this tutorial: http://www.lighthouse3d.com/tutorials/view-frustum-culling/geometric-approach-extracting-the-planes/
Calculations:
drx::util::SPOT nCenter = this->position.Subs(this->front.Multiply(drx::gfx::ogl::n));
drx::util::SPOT fCenter = this->position.Subs(this->front.Multiply(drx::gfx::ogl::f));
double nHeight = 2.0 * tan(drx::math::Radians(this->zoom) * 0.5) * drx::gfx::ogl::n;
double fHeight = 2.0 * tan(drx::math::Radians(this->zoom) * 0.5) * drx::gfx::ogl::f;
double nWidth = nHeight * drx::gfx::ogl::ar;
double fWidth = fHeight * drx::gfx::ogl::ar;
frustum.backLeftTop = fCenter.Add(this->up.Multiply(fHeight * 0.5)).Subs(this->right.Multiply(fWidth * 0.5));
frustum.backRightTop = fCenter.Add(this->up.Multiply(fHeight * 0.5)).Add(this->right.Multiply(fWidth * 0.5));
frustum.backLeftBottom = fCenter.Subs(this->up.Multiply(fHeight * 0.5)).Subs(this->right.Multiply(fWidth * 0.5));
frustum.backRightBottom = fCenter.Subs(this->up.Multiply(fHeight * 0.5)).Add(this->right.Multiply(fWidth * 0.5));
frustum.frontLeftTop = nCenter.Add(this->up.Multiply(nHeight * 0.5)).Subs(this->right.Multiply(nWidth * 0.5));
frustum.frontRightTop = nCenter.Add(this->up.Multiply(nHeight * 0.5)).Add(this->right.Multiply(nWidth * 0.5));
frustum.frontLeftBottom = nCenter.Subs(this->up.Multiply(nHeight * 0.5)).Subs(this->right.Multiply(nWidth * 0.5));
frustum.frontRightBottom = nCenter.Subs(this->up.Multiply(nHeight * 0.5)).Add(this->right.Multiply(nWidth * 0.5));
Front of the frustum appears as a small, really small rectangle in front as it should, but back plane is like, behind the camera? Not sure my calculations are correct?