# CullFaceAttrib¶

class CullFaceAttrib

Bases: RenderAttrib

Indicates which faces should be culled based on their vertex ordering.

Inheritance diagram

enum Mode
enumerator M_cull_none = 0

Cull no polygons

enumerator M_cull_clockwise = 1

Cull clockwise-oriented polygons

enumerator M_cull_counter_clockwise = 2

Cull counter-clockwise-oriented polygons

enumerator M_cull_unchanged = 3

Do not change existing cull behavior

Mode get_actual_mode(void) const

Returns the actual culling mode, without considering the effects of the reverse flag. See also get_effective_mode().

static int get_class_slot(void)
static TypeHandle get_class_type(void)
Mode get_effective_mode(void) const

Returns the effective culling mode. This is the same as the actual culling mode, unless the reverse flag is set, which swaps CW for CCW and vice- versa. Also, M_cull_unchanged is mapped to M_cull_none.

bool get_reverse(void) const

Returns the ‘reverse’ flag. If this is true, the actual cull direction (clockwise vs. counterclockwise) is the reverse of what is specified here. This allows support for make_reverse(), which defines a CullFaceAttrib that reverses whatever the sense of culling would have been.

static ConstPointerTo<RenderAttrib> make(CullFaceAttrib::Mode mode = M_cull_clockwise)

Constructs a new CullFaceAttrib object that specifies how to cull geometry. By Panda convention, vertices are ordered counterclockwise when seen from the front, so the M_cull_clockwise will cull backfacing polygons.

M_cull_unchanged is an identity attrib; if this is applied to vertices without any other intervening attrib, it is the same as applying the default attrib.

static ConstPointerTo<RenderAttrib> make_default(void)

Returns a RenderAttrib that corresponds to whatever the standard default properties for render attributes of this type ought to be.

static ConstPointerTo<RenderAttrib> make_reverse(void)

Constructs a new CullFaceAttrib object that reverses the effects of any other CullFaceAttrib objects in the scene graph. M_cull_clockwise will be treated as M_cull_counter_clockwise, and vice-versa. M_cull_none is unchanged.