14#ifndef NONLINEARIMAGER_H
15#define NONLINEARIMAGER_H
81class EXPCL_PANDAFX NonlinearImager {
130 PT(
Camera) _internal_camera;
136 typedef pvector<Viewer> Viewers;
143 typedef pvector<Mesh> Meshes;
148 PT(ProjectionScreen) _screen_node;
150 PT(GraphicsOutput) _buffer;
151 NodePath _source_camera;
152 int _tex_width, _tex_height;
158 typedef pvector<Screen> Screens;
160 void recompute_screen(Screen &screen,
size_t vi);
161 void render_screen(GraphicsEngine *engine, Screen &screen);
166 PT(GraphicsEngine) _engine;
167 PT(AsyncTask) _recompute_task;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A node that can be positioned around in the scene graph to represent a point of view for rendering a ...
A rectangular subregion within a window for rendering into.
Associates a generic C-style function pointer with an AsyncTask object.
This class is the main interface to controlling the render process.
This is a base class for the various different classes that represent the result of a frame of render...
Encapsulates all the communication with a particular instance of a given rendering backend.
A node that contains a Lens.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
get_screen
Returns the nth screen that has been added to the imager.
void remove_all_viewers()
Removes all viewers from the imager.
get_num_screens
Returns the number of screens that have been added to the imager.
void recompute()
Forces a regeneration of all the mesh objects, etc.
static AsyncTask::DoneStatus recompute_callback(GenericAsyncTask *task, void *data)
This function is added as a task, to ensure that all frames are up-to-date.
void set_viewer_camera(int index, const NodePath &viewer_camera)
Specifies the LensNode that is to serve as the viewer for this screen.
int find_screen(const NodePath &screen) const
Returns the index number of the first appearance of the indicated screen within the imager's list,...
get_viewer
Returns the nth viewer's DisplayRegion that has been added to the imager.
void recompute_if_stale()
Calls recompute() if it needs to be called.
GraphicsEngine * get_graphics_engine() const
Returns the GraphicsEngine that all of the viewers added to the NonlinearImager have in common.
void set_screen_active(int index, bool active)
Sets the active flag on the indicated screen.
int add_screen(ProjectionScreen *screen)
This version of this method is deprecated and will soon be removed.
void set_texture_size(int index, int width, int height)
Sets the width and height of the texture used to render the scene for the indicated screen.
void remove_all_screens()
Removes all screens from the imager.
int add_viewer(DisplayRegion *dr)
Adds the indicated DisplayRegion as a viewer into the NonlinearImager room.
int find_viewer(DisplayRegion *dr) const
Returns the index number of the indicated DisplayRegion within the list of viewers,...
NodePath get_viewer_scene(int index) const
Returns a pointer to the root node of the internal scene graph for the nth viewer,...
void set_source_camera(int index, const NodePath &source_camera)
Specifies the camera that will be used to render the image for this particular screen.
bool get_screen_active(int index) const
Returns the active flag on the indicated screen.
void remove_viewer(int index)
Removes the viewer with the indicated index number from the imager.
get_num_viewers
Returns the number of viewers that have been added to the imager.
void remove_screen(int index)
Removes the screen with the indicated index number from the imager.
NodePath get_viewer_camera(int index) const
Returns the NodePath to the LensNode that is to serve as nth viewer for this screen.
get_buffer
Returns the offscreen buffer that is automatically created for the nth projection screen.
NodePath get_dark_room() const
Returns the NodePath to the root of the dark room scene.
A ProjectionScreen implements a simple system for projective texturing.
This is a sequence number that increments monotonically.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.