PrevUpHomeNext

Face orientation and mode

#include <oglplus/face_mode.hpp>

Facing

enum class Face : GLenum
{
	Front        = GL_FRONT,
	Back         = GL_BACK,
	FrontAndBack = GL_FRONT_AND_BACK
};

template <>
Range<Face> EnumValueRange<Face>(void);

StrCRef EnumValueName(Face);

Face to class

#if !OGLPLUS_NO_ENUM_VALUE_CLASSES
namespace enums {

template <typename Base, template<Face> class Transform>
class EnumToClass<Base, Face, Transform> 1
 : public Base
{
public:
	EnumToClass(void);
	EnumToClass(Base&& base);

	Transform<Face::Front>
		Front;
	Transform<Face::Back>
		Back;
	Transform<Face::FrontAndBack>
		FrontAndBack;
};

} // namespace enums
#endif

1

Specialization of EnumToClass for the Face enumeration.

Single face

enum class SingleFace : GLenum
{
	Front = GL_FRONT,
	Back  = GL_BACK
};

template <>
Range<SingleFace> EnumValueRange<SingleFace>(void);

StrCRef EnumValueName(SingleFace);

SingleFace to class

#if !OGLPLUS_NO_ENUM_VALUE_CLASSES
namespace enums {

template <typename Base, template<SingleFace> class Transform>
class EnumToClass<Base, SingleFace, Transform> 1
 : public Base
{
public:
	EnumToClass(void);
	EnumToClass(Base&& base);

	Transform<SingleFace::Front>
		Front;
	Transform<SingleFace::Back>
		Back;
};

} // namespace enums
#endif

1

Specialization of EnumToClass for the SingleFace enumeration.

Orientation

enum class FaceOrientation : GLenum
{
	CW  = GL_CW,
	CCW = GL_CCW
};

template <>
Range<FaceOrientation> EnumValueRange<FaceOrientation>(void);

StrCRef EnumValueName(FaceOrientation);

Functions

Face Opposite(Face facing); 1

FaceOrientation Inverted(FaceOrientation winding); 2

1

Returns the opposite facing direction (Front if Back and Back if Front).

2

Inverts the face orientation (CW to CCW and CCW to CW).


PrevUpHomeNext