72 lines
1.9 KiB
Text
72 lines
1.9 KiB
Text
|
/**
|
||
|
* PANDA 3D SOFTWARE
|
||
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
||
|
*
|
||
|
* All use of this software is subject to the terms of the revised BSD
|
||
|
* license. You should have received a copy of this license along
|
||
|
* with this source code in a file named "LICENSE."
|
||
|
*
|
||
|
* @file scissorEffect.I
|
||
|
* @author drose
|
||
|
* @date 2008-07-30
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* 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.
|
||
|
*/
|
||
|
INLINE bool ScissorEffect::
|
||
|
is_screen() const {
|
||
|
return _screen;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 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.
|
||
|
*/
|
||
|
INLINE const LVecBase4 &ScissorEffect::
|
||
|
get_frame() const {
|
||
|
return _frame;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the number of node-based scissor points. See get_point().
|
||
|
*/
|
||
|
INLINE int ScissorEffect::
|
||
|
get_num_points() const {
|
||
|
return (int)_points.size();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 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.
|
||
|
*/
|
||
|
INLINE const LPoint3 &ScissorEffect::
|
||
|
get_point(int n) const {
|
||
|
nassertr(n >= 0 && n < (int)_points.size(), LPoint3::zero());
|
||
|
return _points[n]._p;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the node to which the nth point is relative, or empty NodePath to
|
||
|
* indicate the current node.
|
||
|
*/
|
||
|
INLINE NodePath ScissorEffect::
|
||
|
get_node(int n) const {
|
||
|
nassertr(n >= 0 && n < (int)_points.size(), NodePath());
|
||
|
return _points[n]._node;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns true if this ScissorEffect actually enables scissoring, or false if
|
||
|
* it culls only.
|
||
|
*/
|
||
|
INLINE bool ScissorEffect::
|
||
|
get_clip() const {
|
||
|
return _clip;
|
||
|
}
|