15 #ifndef PORTALCLIPPER_H
16 #define PORTALCLIPPER_H
18 #include "pandabase.h"
21 #include "geomVertexData.h"
22 #include "sceneSetup.h"
23 #include "renderState.h"
24 #include "portalNode.h"
25 #include "transformState.h"
26 #include "geometricBoundingVolume.h"
27 #include "boundingHexahedron.h"
28 #include "pointerTo.h"
30 #include "typedObject.h"
31 #include "pStatCollector.h"
32 #include "config_pgraph.h"
57 INLINE
bool is_partial_portal_in_view();
58 INLINE
bool is_facing_view(
const LPlane &portal_plane);
59 INLINE
bool is_whole_portal_in_view(
const LMatrix4 &cmat);
61 bool prepare_portal(
const NodePath &node_path);
64 INLINE
void draw_camera_frustum();
67 INLINE
void move_to(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
70 INLINE
void draw_to(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
73 void draw_current_portal();
77 INLINE
void get_reduced_viewport(
LPoint2& min,
LPoint2& max)
const;
78 INLINE
void set_reduced_viewport(
const LPoint2& min,
const LPoint2& max);
80 INLINE
void set_clip_state(
const RenderState* clip_state);
88 register_type(_type_handle,
"PortalClipper",
89 TypedObject::get_class_type());
92 return get_class_type();
104 INLINE Point(
const Point ©);
105 INLINE
void operator = (
const Point ©);
135 #include "portalClipper.I"
A basic node of the scene graph or data graph.
This is the base class for all three-component vectors and points.
static void init_type()
This function is declared non-inline to work around a compiler bug in g++ 2.96.
This is an "unaligned" LVecBase4.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
This is an abstract class that all classes which use TypeHandle, and also provide virtual functions t...
This is our own Panda specialization on the default STL vector.
This is another abstract class, for a general class of bounding volumes that actually enclose points ...
A node in the scene graph that can hold a Portal Polygon, which is a rectangle.
This defines the abstract interface for an object that receives Geoms identified by the CullTraverser...
The smallest atom of cull.
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
This is a 4-by-4 transform matrix.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is the base class for all three-component vectors and points.
This is a two-component point in space.
TypeHandle is the identifier used to differentiate C++ class types.
This object holds the camera position, etc., and other general setup information for rendering a part...
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
A node that holds Geom objects, renderable pieces of geometry.
This defines a bounding convex hexahedron.