+#include <msp/strings/format.h>
#include "windingtest.h"
namespace Msp {
else if(conv.get()=="COUNTERCLOCKWISE")
winding = COUNTERCLOCKWISE;
else
- throw InvalidParameterValue("Invalid FaceWinding");
+ throw lexical_error(format("conversion of '%s' to FaceWinding", conv.get()));
}
WindingTest::WindingTest():
- test(false),
winding(COUNTERCLOCKWISE)
{ }
WindingTest::WindingTest(FaceWinding w):
- test(true),
winding(w)
{ }
{
if(set_current(this))
{
- if(test)
- {
- glEnable(GL_CULL_FACE);
- glFrontFace(winding);
- }
- else
- glDisable(GL_CULL_FACE);
+ glEnable(GL_CULL_FACE);
+ glFrontFace(winding);
}
}
glDisable(GL_CULL_FACE);
}
-WindingTest &WindingTest::clockwise()
+const WindingTest &WindingTest::get_reverse() const
+{
+ if(winding==CLOCKWISE)
+ return counterclockwise();
+ else
+ return clockwise();
+}
+
+const WindingTest &WindingTest::clockwise()
{
static WindingTest test(CLOCKWISE);
return test;
}
-WindingTest &WindingTest::counterclockwise()
+const WindingTest &WindingTest::counterclockwise()
{
static WindingTest test(COUNTERCLOCKWISE);
return test;