new Camera(wcCenter, wcWidth, viewportArray, bound) → {Camera}
Default Constructor
Height of the user defined WC is implicitly defined by the viewport aspect ratio
viewportRect: an array of 4 elements
[0] [1]: (x,y) position of lower left corner on the canvas (in pixel)
[2]: width of viewport
[3]: height of viewport
Parameters:
Name | Type | Description |
---|---|---|
wcCenter |
vec2 | Center position of Camera |
wcWidth |
Number | Width of Camera |
viewportArray |
Array.<Float> | position and size of viewport [x, y, width, height] |
bound |
Number | viewport border |
- Source:
Returns:
New instance of Camera
- Type
- Camera
Members
(static) eViewport :enum|eViewport
Viewport enum
Type:
- enum | eViewport
- Source:
Methods
clampAtBoundary(aXform, zone) → {eboundCollideStatus}
prevents the xform from moving outside of the WC boundary
by clamping the aXfrom at the boundary of WC
Parameters:
Name | Type | Description |
---|---|---|
aXform |
Transform | to check collision status |
zone |
Float | distance from the camera border to collide with |
- Source:
Returns:
Collision status of the parameter transform and Camera
- Type
- eboundCollideStatus
collideWCBound(aXform, zone) → {eboundCollideStatus}
Check if parameter transform collides with the camera border
Parameters:
Name | Type | Description |
---|---|---|
aXform |
Transform | to check collision status |
zone |
Float | distance from the camera border to collide with |
- Source:
Returns:
Collision status of the parameter transform and Camera
- Type
- eboundCollideStatus
configInterpolation(stiffness, duration) → {void}
Confiqure interpolation of camera
Parameters:
Name | Type | Description |
---|---|---|
stiffness |
Number | stiffness value of interpolate, stiffness of 1 switches off interpolation |
duration |
Number | duration value of interpolate |
- Source:
Returns:
- Type
- void
fakeZInPixelSpace(z) → {Number}
Returns Fake z position in Pixel Space
Parameters:
Name | Type | Description |
---|---|---|
z |
Number | value to scale with pixel ratio |
- Source:
Returns:
fake z position in Pixel space
- Type
- Number
getBackgroundColor() → {Array.<Float>}
Return the background color of the Camera
- Source:
Returns:
- Type
- Array.<Float>
getPosInPixelSpace() → {vec3}
Return Camera position in pixel space
- Source:
Returns:
Camera position in pixel space
- Type
- vec3
getViewport() → {Array}
Return the Camera viewport
- Source:
Returns:
camera Viewport [x, y, width, height]
- Type
- Array
getVPMatrix() → {mat4}
Return the View-Projection transform operator
- Source:
Returns:
View-Projection transform
- Type
- mat4
getWCCenter() → {vec2}
Return the World Coordinate center position
- Source:
Returns:
World Coordinate center position
- Type
- vec2
getWCHeight() → {Number}
Return the height of the World Coordinate
- Source:
Returns:
height of the World Coordinate
- Type
- Number
getWCWidth() → {Number}
Return the width of the World Coordinate
- Source:
Returns:
width of the World Coordinate
- Type
- Number
isMouseInViewport() → {Boolean}
Checks if the mouse position is inside the Camera viewport
- Source:
Returns:
true if mouse position is inside viewport
- Type
- Boolean
mouseDCX() → {Number}
Returns mouse X position.
- Source:
Returns:
- Type
- Number
mouseDCY() → {Number}
Returns mouse Y position.
- Source:
Returns:
- Type
- Number
mouseWCX() → {Number}
Returns the mouse X World Coordinate position
- Source:
Returns:
- Type
- Number
mouseWCY() → {Number}
Returns the mouse Y World Coordinate position
- Source:
Returns:
- Type
- Number
panBy(dx, dy) → {void}
Pan the Camera by dx and dy
Parameters:
Name | Type | Description |
---|---|---|
dx |
Number | X value to pan the camera |
dy |
Number | Y value to pan the camera |
- Source:
Returns:
- Type
- void
panTo(cx, cy) → {void}
Pan Camera to cx, cy position
Parameters:
Name | Type | Description |
---|---|---|
cx |
Number | X position to pan the camera to |
cy |
Number | Y position to pan the camera to |
- Source:
Returns:
- Type
- void
panWith(aXform, zone) → {void}
pan the camera to ensure aXform is within camera bounds
this is complementary to the ClampAtBound: instead of clamping aXform, now, move the camera.
Parameters:
Name | Type | Description |
---|---|---|
aXform |
Transform | Transform to clamp the Camera to |
zone |
Number | distance from the camera border to collide with |
- Source:
Returns:
- Type
- void
setBackgroundColor(newColor) → {void}
Set the background color of the Camera
Parameters:
Name | Type | Description |
---|---|---|
newColor |
Array.<Float> | new color of the background |
- Source:
Returns:
- Type
- void
setupViewProjection() → {void}
Initializes the camera to begin drawing
- Source:
Returns:
- Type
- void
setViewport(viewportArray, bound) → {void}
Set the Camera viewport
Parameters:
Name | Type | Description |
---|---|---|
viewportArray |
Array.<Float> | viewportArray position and size of viewport [x, y, width, height] |
bound |
Number | viewport border |
- Source:
Returns:
- Type
- void
setWCCenter(xPos, yPos) → {void}
Set the World Coordinate center position
Parameters:
Name | Type | Description |
---|---|---|
xPos |
Number | World Coordinate X position |
yPos |
Number | World Coordinate Y position |
- Source:
Returns:
- Type
- void
setWCWidth(width) → {void}
Set the World Coordinate width
Parameters:
Name | Type | Description |
---|---|---|
width |
Number | of the World Coordinate |
- Source:
Returns:
- Type
- void
shake(xDelta, yDelta, shakeFrequency, duration) → {void}
Initiates a camera shake
Parameters:
Name | Type | Description |
---|---|---|
xDelta |
Number | how large a shake |
yDelta |
Number | how large a shake |
shakeFrequency |
Number | how much movement |
duration |
Number | for how long in number of cycles |
- Source:
Returns:
- Type
- void
update() → {void}
update function to be called from EngineCore.GameLoop.
- Source:
Returns:
- Type
- void
VPpixelPosToWC(p) → {vec2}
Takes a pixel position and returns the world coordinate equivilent
Parameters:
Name | Type | Description |
---|---|---|
p |
type | The pixel position |
- Source:
Returns:
the WC equivilent
- Type
- vec2
VPpixelSizeToWC(s) → {Number}
Takes the 1D size in pixels and converts it to a world coordinate size
Parameters:
Name | Type | Description |
---|---|---|
s |
type | The pixel size |
- Source:
Returns:
The WC size
- Type
- Number
VPpixelSizeVec2ToWC(s) → {Number}
Takes the 2D size in pixels and converts it to a world coordinate size
Parameters:
Name | Type | Description |
---|---|---|
s |
type | The pixel size |
- Source:
Returns:
the WC Size
- Type
- Number
wcDirToPixel(d) → {vec3}
transform direction in wc space to pixel space
Parameters:
Name | Type | Description |
---|---|---|
d |
vec3 | vec3 direction in WC |
- Source:
Returns:
- Type
- vec3
wcPosToPixel(p) → {vec3}
Returns World Coordinate position as a pixel position
Parameters:
Name | Type | Description |
---|---|---|
p |
vec3 | vec3 position, fake Z |
- Source:
Returns:
Pixel space position
- Type
- vec3
wcSizeToPixel(s) → {vec2}
Returns Pixel size of World Coordinate size
Parameters:
Name | Type | Description |
---|---|---|
s |
vec2 | world coordinate size to convert to pixel size |
- Source:
Returns:
Pixel size of World Coordinate size
- Type
- vec2
zoomBy(zoom) → {void}
zoom with respect to the center
zoom > 1 ==> zooming out, see more of the world
zoom < 1 ==> zooming in, see less of the world, more detailed
zoom < 0 is ignored
Parameters:
Name | Type | Description |
---|---|---|
zoom |
Number | to scale the camera width |
- Source:
Returns:
- Type
- void
zoomTowards(pos, zoom) → {void}
zoom towards (pX, pY) by zoom:
zoom > 1 ==> zooming out, see more of the world
zoom < 1 ==> zooming in, see less of the world, more detailed
zoom < 0 is ignored
Parameters:
Name | Type | Description |
---|---|---|
pos |
vec2 | Point to scale the camera with respect to |
zoom |
Number | to scale the camera width |
- Source:
Returns:
- Type
- void