IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

DXNewCamera

Function

Creates a new Camera.

Syntax

#include <dx/dx.h>


Camera DXNewCamera()

Functional Details

Creates a new Camera. A camera defines the position and orientation of the viewer, the volume of interest of the object being viewed, and the size of the image to contain the resulting view.

A summary of how to interpret a camera follows.

The position and orientation of the view are defined by where the viewer is standing, from, where the viewer is looking, to, and the tilt of the viewer's head, up.

The volume of interest of the object being viewed depends on the type of camera. An orthographic camera defines a box that is centered on the to point and has an infinite z axis lying along the to-from vector. The y axis is perpendicular to the to-from vector in the direction of the up vector. The x- and y-dimensions of the box are given by the width and aspect parameters of the camera, where aspect is defined as the ratio of the height to width.

In orthographic projection, objects do not appear smaller as they get more distant, and in fact, distance between the object and the viewer has no effect on the appearance of the object. The distance between the to and from points is irrelevant; only the direction is important.

The volume of interest defined by a perspective camera is a pyramid with an apex at the from position, and a base at the to point perpendicular to the to-from vector. The width of the base is defined by the angle formed by the sides of the pyramid at the apex and the distance between the to and from points. The angle formed by the sides of the pyramid is also known as the "field of view" and is the fov parameter.

The fov is defined as twice the tangent of half the angle (e.g., for a 90-degree sweep, the fov is 2 * tan(45 degrees), or 2.0). The fov can also be thought as the ratio of the width of the base to the distance to the viewer (e.g., for a 20-meter wide area from a distance of 10 meters , set the fov to 20/10, or 2.0). The base height is defined by the resulting width times the aspect.

With a perspective camera, objects appear smaller with increasing distance. When the perspective pyramid is projected onto the image, the sides of the pyramid are made parallel, with a cross-section equal to the base dimensions. This has the effect of widening (in x and y) the objects in front of the pyramid base and compressing (in x and y) the objects behind the pyramid base.

The Camera created can be deleted with DXDelete. See 4.2 , "Memory Management".

The horizontal size of the image containing the resulting view is defined as the resolution in pixels, and the vertical size is determined by the resolution * aspect. The same aspect ratio is used for both the size of the image and the volume of interest to prevent the object from being stretched in one of the dimensions. The background color of the image is also a parameter to the camera.

By default, the camera is orthographic, looking from the positive z axis toward the origin; x and y each range from -1 to +1. The image is 640 by 480 pixels, with the origin at the center of the image.

Return Value

Returns the Camera or returns NULL and sets an error code.

See Also

DXGetCameraMatrix, DXGetCameraRotation, DXGetCameraMatrixWithFuzz, DXRender, DXSetBackgroundColor, DXGetBackgroundColor, DXSetOrthographic, DXGetOrthographic, DXSetPerspective, DXGetPerspective, DXSetResolution, DXGetCameraResolution, DXSetView, DXGetView

16.7 , "Camera Class".


[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]


[IBM Home Page | Order | Search | Contact IBM | Legal ]