Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions

# CompassEffect Class Reference

A CompassEffect causes a node to inherit its rotation (or pos or scale, if specified) from some other reference node in the graph, or more often from the root. More...

Inheritance diagram for CompassEffect:

List of all members.

## Public Types
enum | Properties { PX = 1, PY = 2, PZ = 4, PPos = 7, PRot = 8, PSx = 16, PSy = 32, PSz = 64, PScale = 112, PAll = 127 }
## Public Member Functions
int | getProperties ()
| Returns the bitmask of properties that this CompassEffect object inherits from its reference node (or from the root).
NodePath const | getReference ()
| Returns the reference node from which the CompassEffect inherits its transform.
## Static Public Member Functions
static TypeHandle | getClassType ()
static RenderEffect const | make (NodePath const reference, int properties)
| Constructs a new CompassEffect object.
static RenderEffect const | make (NodePath const reference)
| Constructs a new CompassEffect object.

## Detailed Description

A CompassEffect causes a node to inherit its rotation (or pos or scale, if specified) from some other reference node in the graph, or more often from the root.

In its purest form, a CompassEffect is used to keep the node's rotation fixed relative to the top of the scene graph, despite other transforms that may exist above the node. Hence the name: the node behaves like a magnetic compass, always pointing in the same direction.

As an couple of generalizing extensions, the CompassEffect may also be set up to always orient its node according to some other reference node than the root of the scene graph. Furthermore, it may optionally adjust any of pos, rotation, or scale, instead of necessarily rotation; and it may adjust individual pos and scale components. (Rotation may not be adjusted on an individual component basis; that's just asking for trouble.)

Be careful when using the pos and scale modes. In these modes, it's possible for the CompassEffect to move its node far from its normal bounding volume, causing culling to fail. If this is an issue, you may need to explicitly set a large (or infinite) bounding volume on the effect node.

## Member Enumeration Documentation

enum Properties

Enumerator:

  PX |
  PY |
  PZ |
  PPos |
  PRot |
  PSx |
  PSy |
  PSz |
  PScale |
  PAll |

## Member Function Documentation

static TypeHandle getClassType | ( |  | ) | `[static]`

Reimplemented from RenderEffect.

int getProperties | ( |  | ) |

Returns the bitmask of properties that this CompassEffect object inherits from its reference node (or from the root).

NodePath const getReference | ( |  | ) |

Returns the reference node from which the CompassEffect inherits its transform.

If this is empty, it means the root of the scene graph.

static RenderEffect const make | ( | NodePath const | reference,
|  | int | properties
| ) |  | `[static]`

Constructs a new CompassEffect object.

If the reference is an empty NodePath, it means the CompassEffect is relative to the root of the scene graph; otherwise, it's relative to the indicated node. The properties bitmask specifies the set of properties that the compass node inherits from the reference instead of from its parent.

static RenderEffect const make | ( | NodePath const | reference | ) | `[static]`

Constructs a new CompassEffect object.

If the reference is an empty NodePath, it means the CompassEffect is relative to the root of the scene graph; otherwise, it's relative to the indicated node. The properties bitmask specifies the set of properties that the compass node inherits from the reference instead of from its parent.

All Classes Namespaces Functions Variables Enumerations Enumerator Properties