# Palomino - View Module

©2004,2008 Jim E. Brooks http://www.palomino3d.org

# Contents

- Main Contents

- Overview
- Window
- View and Viewpoint
- Eye
- Eye Matrix (view matrix)

## Overview

[2008/06]

Module to define a window and views. The purpose of this module is to serve as a layer to allow app-level code to manipulate views in a way independent of the graphics system.

    Window  View  Viewpoint

    osg::Viewer  osg::Camera  modelview matrix

## Window

[2008/06]

Window class contains Views, defines the SceneGraph, executes main loop, broadcasts draw events. Window automatically creates the main view. Window is based on OSG::Viewer.

## View and Viewpoint

[2008/06]

View defines both a 2D viewport and 3D viewpoint. The order of rendering Views is the same order Views were attached to Window. View is based on osg::Camera.

Logical views are composed with a View and a Viewpoint object. Viewpoint is a functor containing an algorithm to compute the view matrix which is called before rendering a new frame. This composition can be changed dynamically using View::SetViewpoint() to allow switching to different view modes (first-person, chase-plane, etc). Despite the view appearing to change, View keeps the same underlying osg::Camera object.

## Eye

[2008/02]

Synonyms for the Eye are viewpoint or camera. The View class abstracts the Eye (there is no Eye class as earlier versions had, View superceded it). View provides an interface to Eye in terms of a matrix: View::SetMatrix()/GetMatrix(). The View class is a Mediator over osg::Viewer, osg::View, and osg::Camera. View::SetMatrix() is a pass-thru to osg::Camera::setViewMatrix().

## Eye Matrix

[2007/12]

The coordinates of the origin of the eye matrix (view matrix) are negative. So is the "view matrix" of an OSG Camera (effectively, an eye matrix).

Last modified: Thu Jun 12 19:18:01 EDT 2008