RTSCamera
new RTSCamera(physics : Object, options : Object)Create an RTSCamera.
Constructor Parameters
physicsObjectoptionsoptionalObjectDefault is
{}.canvasoptionalHTMLCanvasElementCanvas element for mouse eventstargetoptionalTHREE.Object3DTarget object to followfocusoptionalTHREE.Vector3Initial focus position (when not following)panOffsetoptionalTHREE.Vector3Initial pan offsetfollowTargetoptionalbooleanFollow target position each frame
Default isfalse.distanceoptionalnumberCamera distance from focus
Default is24.zoomLimitsoptionalObjectZoom distance limits
Default is{ min: 14, max: 40 }.zoomSpeedoptionalnumberMouse wheel zoom sensitivity
Default is0.8.zoomToCursoroptionalbooleanKeep cursor point fixed when zooming
Default isfalse.groundPlaneYoptionalnumberGround plane height for zoom-to-cursor
Default is0.panSpeedoptionalnumberEdge scroll speed (units/sec at distance 10)
Default is20.dragPanSpeedoptionalnumberDrag pan multiplier
Default is1.edgeScrolloptionalObjectEdge scroll options
Default is{ enabled: true, size: '25%', speed: 20 }.rotateSpeedoptionalnumberYaw rotation speed (rad per pixel)
Default is0.005.yawoptionalnumberInitial yaw (radians)
Default is45deg.tiltoptionalnumberTilt angle in radians
Default is55deg.allowPitchoptionalbooleanAllow pitch changes when rotating
Default isfalse.minTiltoptionalnumberMinimum tilt (radians)maxTiltoptionalnumberMaximum tilt (radians)dampingoptionalnumberFocus translation damping strength
Default is6.panButtonoptionalnumberMouse button for drag pan (0=left,1=middle,2=right, -1 disables)
Default is1.rotateButtonoptionalnumberMouse button for rotate (-1 disables)
Default is-1.fovoptionalnumberField of view
Default is50.
Properties
# .canvas : HTMLCanvasElement
Canvas element for mouse events.
# .distance : number
Camera distance from focus.
# .zoomLimits : Object
Zoom distance limits.
# .zoomSpeed : number
Mouse wheel zoom sensitivity.
# .panSpeed : number
Edge scroll base speed (units/sec at distance 10).
# .dragPanSpeed : number
Drag pan multiplier.
# .edgeScroll : Object
Edge scroll settings.
# .rotateSpeed : number
Rotation speed (radians per pixel).
# .yaw : number
Yaw angle (radians).
# .tilt : number
Tilt angle (radians).
# .allowPitch : boolean
Allow pitch changes when rotating.
# .minTilt : number
Min tilt for pitch changes.
# .maxTilt : number
Max tilt for pitch changes.
# .zoomToCursor : boolean
Keep cursor point fixed when zooming.
# .groundPlaneY : number
Ground plane height for zoom-to-cursor.
# .followTarget : boolean
Follow target each frame.
# .damping : number
Damping strength for focus translation.
# .panButton : number
Mouse button for drag pan.
# .rotateButton : number
Mouse button for rotate.
Methods
update#
update(delta : number)Update camera state. Call each frame.
Parameters
deltanumberresize#
resize(width : number, height : number) : thisHandle window resize. Updates aspect ratio and projection matrix.
Parameters
widthoptionalnumberheightoptionalnumberReturns
this — For chainingsetDistance#
setDistance(distance : number) : thisSet camera distance from focus.
Parameters
distancenumberReturns
this — For chainingsetZoomLimits#
setZoomLimits(min : number, max : number) : thisSet zoom distance limits.
Parameters
minnumbermaxnumberReturns
this — For chainingsetFocus#
setFocus(position : THREE.Vector3) : thisSet focus position and stop following target.
Parameters
positionTHREE.Vector3Returns
this — For chainingsetFollowTarget#
setFollowTarget(follow : boolean) : thisEnable or disable following the target. When enabling, clears pan offset and recenters on the target.
Parameters
followbooleanReturns
this — For chainingrecenter#
recenter() : thisClear pan offset and recenter on target when available.
Returns
this — For chainingsetGroundPlaneY#
setGroundPlaneY(y : number) : thisSet ground plane height for zoom-to-cursor.
Parameters
ynumberReturns
this — For chaininggetPointerIntersection#
getPointerIntersection(target : THREE.Vector3) : THREE.Vector3|nullGet the current pointer intersection position from physics raycast. Returns the world position where the pointer ray intersects geometry.
Parameters
targetoptionalTHREE.Vector3Returns
THREE.Vector3 | null — The intersection position, or null if no intersectiondispose#
dispose()Clean up resources and event listeners.