Panda3D
|
This provides a higher-level wrapper around ScissorAttrib. More...
Public Member Functions | |
const RenderEffect | addPoint (const LPoint3 point, const NodePath node) |
Returns a new ScissorEffect with the indicated point added. More... | |
bool | getClip () |
Returns true if this ScissorEffect actually enables scissoring, or false if it culls only. More... | |
const LVecBase4 | getFrame () |
If is_screen() returns true, this method may be called to query the screen- based scissor frame. More... | |
NodePath | getNode (int n) |
Returns the node to which the nth point is relative, or empty NodePath to indicate the current node. More... | |
list | getNodes () |
int | getNumPoints () |
Returns the number of node-based scissor points. More... | |
const LPoint3 | getPoint (int n) |
If is_screen() returns false, then get_num_points() and get_point() may be called to query the node-based scissor frame. More... | |
list | getPoints () |
bool | isScreen () |
Returns true if the ScissorEffect is a screen-based effect, meaning get_frame() has a meaningful value, but get_a() and get_b() do not. More... | |
![]() | |
int | compareTo (const RenderEffect other) |
Provides an arbitrary ordering among all unique RenderEffects, so we can store the essentially different ones in a big set and throw away the rest. More... | |
output (Ostream out) | |
write (Ostream out, int indent_level) | |
![]() | |
object | __reduce__ () |
object | __reduce_persist__ (object pickler) |
VectorUchar | encodeToBamStream () |
Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More... | |
bool | encodeToBamStream (VectorUchar data, BamWriter writer) |
Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More... | |
fillin (DatagramIterator scan, BamReader manager) | |
This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More... | |
UpdateSeq | getBamModified () |
Returns the current bam_modified counter. More... | |
markBamModified () | |
Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More... | |
![]() | |
TypeHandle | getType () |
int | getTypeIndex () |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | isExactType (TypeHandle handle) |
Returns true if the current object is the indicated type exactly. More... | |
bool | isOfType (TypeHandle handle) |
Returns true if the current object is or derives from the indicated type. More... | |
![]() | |
int | getRefCount () |
Returns the current reference count. More... | |
ref () | |
Explicitly increments the reference count. More... | |
bool | testRefCountIntegrity () |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | testRefCountNonzero () |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
bool | unref () |
Explicitly decrements the reference count. More... | |
Static Public Member Functions | |
static TypeHandle | getClassType () |
static const RenderEffect | makeNode (bool clip) |
Constructs a new node-relative ScissorEffect, with no points. More... | |
static const RenderEffect | makeNode (const LPoint3 a, const LPoint3 b, const LPoint3 c, const LPoint3 d, const NodePath node) |
Constructs a new node-relative ScissorEffect. More... | |
static const RenderEffect | makeNode (const LPoint3 a, const LPoint3 b, const NodePath node) |
Constructs a new node-relative ScissorEffect. More... | |
static const RenderEffect | makeScreen (const LVecBase4 frame, bool clip) |
Constructs a new screen-relative ScissorEffect. More... | |
![]() | |
static TypeHandle | getClassType () |
static int | getNumEffects () |
Returns the total number of unique RenderEffect objects allocated in the world. More... | |
static | listEffects (Ostream out) |
Lists all of the RenderEffects in the cache to the output stream, one per line. More... | |
static bool | validateEffects () |
Ensures that the cache is still stored in sorted order. More... | |
![]() | |
static TypedWritableReferenceCount | decodeFromBamStream (VectorUchar data, BamReader reader) |
Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More... | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
![]() | |
static TypeHandle | getClassType () |
Additional Inherited Members | |
![]() | |
TypeHandle | type |
Returns the TypeHandle representing this object's type. More... | |
![]() | |
int | ref_count |
The current reference count. More... | |
This provides a higher-level wrapper around ScissorAttrib.
It allows for the scissor region to be defined via points relative to the current node, and also performs culling based on the scissor region.
const RenderEffect addPoint | ( | const LPoint3 | point, |
const NodePath | node | ||
) |
Returns a new ScissorEffect with the indicated point added.
It is only valid to call this on a "node" type ScissorEffect. The full set of points, projected into screen space, defines the bounding volume of the rectangular scissor region.
Each point may be relative to a different node, if desired.
|
static |
bool getClip | ( | ) |
Returns true if this ScissorEffect actually enables scissoring, or false if it culls only.
const LVecBase4 getFrame | ( | ) |
If is_screen() returns true, this method may be called to query the screen- based scissor frame.
This is a series of left, right, bottom, top, representing the scissor frame relative to the current DisplayRegion. See ScissorAttrib.
NodePath getNode | ( | int | n | ) |
Returns the node to which the nth point is relative, or empty NodePath to indicate the current node.
list getNodes | ( | ) |
int getNumPoints | ( | ) |
Returns the number of node-based scissor points.
See get_point().
const LPoint3 getPoint | ( | int | n | ) |
If is_screen() returns false, then get_num_points() and get_point() may be called to query the node-based scissor frame.
These return n points (at least two), which are understood to be in the space of this node, and which define any opposite corners of the scissor frame.
list getPoints | ( | ) |
bool isScreen | ( | ) |
Returns true if the ScissorEffect is a screen-based effect, meaning get_frame() has a meaningful value, but get_a() and get_b() do not.
|
static |
Constructs a new node-relative ScissorEffect, with no points.
This empty ScissorEffect does nothing. You must then call add_point a number of times to add the points you require.
|
static |
Constructs a new node-relative ScissorEffect.
The four points are understood to be relative to the indicated node, or the current node if the indicated NodePath is empty, and determine four points surrounding the scissor region.
|
static |
Constructs a new node-relative ScissorEffect.
The two points are understood to be relative to the indicated node, or the current node if the NodePath is empty, and determine the diagonally opposite corners of the scissor region.
|
static |
Constructs a new screen-relative ScissorEffect.
The frame defines a left, right, bottom, top region, relative to the DisplayRegion. See ScissorAttrib.