home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-02-20 | 1.7 KB | 71 lines | [AMAS/AMAP] |
- // -* CameraZoomBehavior.js *-
- //
- // Name: CameraZoom behavior
- // Description:
- // Author:
- // Version: $Id: CameraZoomBehavior.js,v 1.4 2001/01/16 16:42:30 consumer Exp $
- //
-
- function CameraZoomBehaviorInit(solidName, intensity)
- {
- var id = makeUniqID("DragForce_" + solidName);
- gDataTable[solidName] = id;
-
- var drag = makeDragForce(id, intensity, '0 0 0',
- makeStringFromPoint(solidGetPosition(solidName)));
-
- var damp = makeDampingSolidForce(makeUniqID("DampingForce_" + solidName),
- "1",
- "1");
-
- nodeAppendChild(solidName, drag);
- nodeAppendChild(solidName, damp);
-
- // Free the camera
- nodeUpdateAttribute(solidName, 'fixed', '0');
- }
-
- function CameraZoomBehaviorKill(solidName)
- {
- }
-
- function CameraZoomBehaviorStart(solidName, zoomTarget, percent)
- {
- var dragForceID = gDataTable[solidName];
- var solidPosition = solidGetPosition(solidName);
- var targetPosition = solidGetPosition(zoomTarget);
- var dragPosition = pointInterpolate(solidPosition, targetPosition, percent);
-
- cameraLookAtSolid(solidName, zoomTarget);
-
- nodeUpdateAttribute(dragForceID,
- 'targetPoint',
- makeStringFromPoint(dragPosition));
- }
-
- function CameraZoomBehaviorStop(solidName)
- {
- }
-
- //
- // Event functions
- //
-
- function CameraZoomBehaviorStartEvent(obj, event)
- {
- var camera = eventGetExtraParam(event, 'camera');
- var zoomTarget = eventGetExtraParam(event, 'zoomTo');
- var percent = eventGetExtraParam(event, 'percent');
- var speed = eventGetExtraParam(event, 'speed');
-
- if (gDataTable[camera] == null) {
- CameraZoomBehaviorInit(camera, parseFloat(speed) * 10);
- }
-
- CameraZoomBehaviorStart(camera, zoomTarget, percent);
- }
-
- function CameraZoomBehaviorStopEvent(obj, event)
- {
- }
-