|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.opensourcephysics.drawing3d.utils.Camera
public class Camera
Title: Camera
Description: This class provides access to the position of the camera, its focus point and its distance to the projection screen that are used to view the 3D scenes. The camera can also be rotated around the line of sight (i.e. the line which conects the camera with the focus point).
The camera position can be set using either the desired X,Y,Z coordinates or spherical coordinates around the focus point. This makes it easy to rotate the scene both horizontally and vertically (around the focus).
Panning can be achieved by moving the focus point to one side.
Zooming is done increasing (positive zoom) or decreasing the distance between the camera and the projection screen.
The projection screen is always normal to the line of sight and has its origin at the intersection of this line with the screen itself.
The camera provides fives different modes of projecting points in space to the screen. Two modes are truly three-dimensional. The other three are planar modes.
Field Summary | |
---|---|
static int |
CHANGE_ANGLES
|
static int |
CHANGE_ANY
|
static int |
CHANGE_FOCUS
|
static int |
CHANGE_MAPPING
|
static int |
CHANGE_MODE
|
static int |
CHANGE_POSITION
|
static int |
CHANGE_ROTATION
|
static int |
CHANGE_SCREEN
|
static int |
MODE_NO_PERSPECTIVE
|
static int |
MODE_PERSPECTIVE
|
static int |
MODE_PERSPECTIVE_OFF
|
static int |
MODE_PERSPECTIVE_ON
|
static int |
MODE_PLANAR_XY
|
static int |
MODE_PLANAR_XZ
|
static int |
MODE_PLANAR_YZ
|
Constructor Summary | |
---|---|
Camera(DrawingPanel3D aPanel)
|
Method Summary | |
---|---|
void |
adjust()
Adjust is a soft reset. |
void |
copyFrom(Camera camera)
Copies its configuration from another camera |
double |
getAltitude()
Get the elevation (VERTICAL_AXIS) angle of the camera position in spherical coordinates with respect to the focus point. |
double |
getAzimuth()
Get the horizontal angle of the camera position in spherical coordinates with respect to the focus point. |
double |
getCosAlpha()
|
double |
getCosBeta()
|
double |
getDistanceToFocus()
|
double |
getDistanceToScreen()
Returns the distance from the camera to the projecting screen. |
double |
getFocusX()
Returns the focus X coordinate |
double |
getFocusY()
Returns the focus Y coordinate |
double |
getFocusZ()
Returns the focus Z coordinate |
int |
getProjectionMode()
Gets the projecting mode of the camera. |
double[] |
getQuatMapping()
|
double |
getRotation()
Returns the angle that the camera is rotated along the line of sight. |
double |
getSinAlpha()
|
double |
getSinBeta()
|
double |
getX()
Returns the camera X coordinate |
double |
getY()
Returns the camera Y coordinate |
double |
getZ()
Returns the camera Z coordinate |
double[] |
inverseMapping(double[] point)
Reverses the mapping on the given point |
boolean |
is3dMode()
Whether the projection mode is three-dimensional |
double[] |
map(double[] point)
Maps coordinates to axes for the given point |
double[] |
projectPosition(double[] p)
|
double[] |
projectSize(double[] p,
double[] size)
Computes the projection of a size at a given point. |
void |
reset()
Resets the camera to the default. |
void |
setAltitude(double angle)
Set the elevation (VERTICAL_AXIS) angle of the camera position in spherical coordinates with respect to the focus point. |
void |
setAzimuth(double angle)
Set the azimuthal (horizontal) angle of the camera position in spherical coordinates with respect to the focus point. |
void |
setAzimuthAndAltitude(double azimuth,
double altitude)
Set the angles of the camera position in spherical coordinates with respect to the focus point. |
void |
setDistanceToScreen(double distance)
Sets the distance from the camera to the projecting screen. |
void |
setFocusXYZ(double[] point)
Sets the focus of the camera. |
void |
setFocusXYZ(double x,
double y,
double z)
Sets the focus point of the camera. |
void |
setMapping(int mappingType)
Sets the correspondance between axes and coordinates. |
void |
setProjectionMode(int mode)
Sets one of the projecting modes. |
void |
setRotation(double angle)
Sets the angle that the camera is rotated along the line of sight. |
void |
setXYZ(double[] point)
Sets the position of the camera. |
void |
setXYZ(double x,
double y,
double z)
Sets the position of the camera. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int MODE_PLANAR_XY
public static final int MODE_PLANAR_XZ
public static final int MODE_PLANAR_YZ
public static final int MODE_PERSPECTIVE_OFF
public static final int MODE_PERSPECTIVE_ON
public static final int MODE_NO_PERSPECTIVE
public static final int MODE_PERSPECTIVE
public static final int CHANGE_ANY
public static final int CHANGE_MODE
public static final int CHANGE_POSITION
public static final int CHANGE_FOCUS
public static final int CHANGE_ROTATION
public static final int CHANGE_SCREEN
public static final int CHANGE_ANGLES
public static final int CHANGE_MAPPING
Constructor Detail |
---|
public Camera(DrawingPanel3D aPanel)
Method Detail |
---|
public void setProjectionMode(int mode)
Changing the mode does not reset the camera.
mode
- intpublic final int getProjectionMode()
public void reset()
public void adjust()
public void setMapping(int mappingType)
mappingType
- An integer specified by the static constants in the Mapping classMapping
public double[] map(double[] point)
point
-
public double[] inverseMapping(double[] point)
point
-
public double[] getQuatMapping()
public void setXYZ(double x, double y, double z)
x
- doubley
- doublez
- doublepublic void setXYZ(double[] point)
point
- double[]public final double getX()
public final double getY()
public final double getZ()
public void setFocusXYZ(double x, double y, double z)
x
- doubley
- doublez
- doublepublic void setFocusXYZ(double[] point)
point
- double[]public final double getFocusX()
public final double getFocusY()
public final double getFocusZ()
public final double getDistanceToFocus()
public void setRotation(double angle)
angle
- double The angle in radianspublic final double getRotation()
public void setDistanceToScreen(double distance)
distance
- doublepublic final double getDistanceToScreen()
public void setAzimuth(double angle)
angle
- the desired angle in radianspublic final double getAzimuth()
public void setAltitude(double angle)
angle
- the desired angle in radians in the range [-Math.PI/2,Math.PI/2]public final double getAltitude()
public void setAzimuthAndAltitude(double azimuth, double altitude)
azimuth
- the desired azimuthal angle in radiansaltitude
- the desired altitude angle in radians in the range [-Math.PI/2,Math.PI/2]public void copyFrom(Camera camera)
camera
- public final double getCosAlpha()
public final double getSinAlpha()
public final double getCosBeta()
public final double getSinBeta()
public boolean is3dMode()
public double[] projectPosition(double[] p)
public double[] projectSize(double[] p, double[] size)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |