@principal-ai/file-city-react 0.5.46 → 0.5.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -139,8 +139,15 @@ export interface CameraControlsConfig {
|
|
|
139
139
|
rotateSpeed?: number;
|
|
140
140
|
/** Zoom speed multiplier. Default: 1 */
|
|
141
141
|
zoomSpeed?: number;
|
|
142
|
+
/** Closest the camera can get to its target (world units). Default: 10. */
|
|
143
|
+
minDistance?: number;
|
|
144
|
+
/** Farthest the camera can get from its target (world units). Default:
|
|
145
|
+
* `citySize * 3`. Override with a larger value when consumers need to
|
|
146
|
+
* zoom out beyond that — e.g. fitting the city into a small canvas
|
|
147
|
+
* sub-rect via `setCameraFlatView`. */
|
|
148
|
+
maxDistance?: number;
|
|
142
149
|
}
|
|
143
|
-
export declare const DEFAULT_CAMERA_CONTROLS: Required<Omit<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed'>> & Pick<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed'>;
|
|
150
|
+
export declare const DEFAULT_CAMERA_CONTROLS: Required<Omit<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed' | 'minDistance' | 'maxDistance'>> & Pick<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed' | 'minDistance' | 'maxDistance'>;
|
|
144
151
|
export declare function resetCamera(): void;
|
|
145
152
|
export declare function moveCameraTo(x: number, z: number, size?: number): void;
|
|
146
153
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileCity3D.d.ts","sourceRoot":"","sources":["../../../src/components/FileCity3D/FileCity3D.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FileCity3D.d.ts","sourceRoot":"","sources":["../../../src/components/FileCity3D/FileCity3D.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAOjF,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EAEZ,cAAc,IAAI,qBAAqB,EACvC,SAAS,EACT,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,QAAQ,OAAO,CAAC;IAErB,UAAU,GAAG,CAAC;QAEZ,UAAU,iBAAkB,SAAQ,aAAa;SAAG;KACrD;CACF;AAGD,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AACrF,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACpC,IAAI,CAAC;AAEV,gDAAgD;AAChD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,aAAa,GACb,UAAU,GACV,MAAM,CAAC;AAGX,MAAM,WAAW,eAAe;IAC9B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,uHAAuH;IACvH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7C;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAS9C,CAAC;AAgtCF,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;AACtF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzC,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;yEACqE;IACrE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,uCAAuC;IACvC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;4CAGwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,aAAa,CAOzP,CAAC;AA+CF,wBAAgB,WAAW,SAE1B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QAE/D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,QAGxB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,QAEvF;AAED;;GAEG;AACH,wBAAgB,eAAe;OA7CA,MAAM;OAAK,MAAM;OAAK,MAAM;SA+C1D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,EAC9D,OAAO,CAAC,EAAE,aAAa,QAGxB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,QAEtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,EAChD,OAAO,CAAC,EAAE,aAAa,QAGxB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,QAEpE;AAED,wBAAgB,iBAAiB;OA/FA,MAAM;OAAK,MAAM;OAAK,MAAM;SAiG5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,kBAE7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,kBAE5B;AA+jDD,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,gFAAgF;IAChF,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,8BAA8B;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,0GAA0G;IAC1G,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,yEAAyE;IACzE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2IAA2I;IAC3I,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEvC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,kEAAkE;IAClE,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE3C;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEzC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAEtC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,KAAc,EACd,MAAY,EACZ,eAAe,EACf,eAAe,EACf,SAAS,EACT,KAAK,EACL,SAAS,EACT,OAAO,EAAE,eAAe,EACxB,YAAY,EACZ,YAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EAAE,uBAAuB,EACxC,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,WAAkB,EAC9B,SAAiB,EACjB,cAAuC,EACvC,YAA4C,EAC5C,aAAwB,EACxB,WAAe,EACf,YAAoC,EACpC,cAAc,EAAE,sBAAsB,EACtC,UAAU,EAAE,kBAAkB,EAC9B,iBAAiB,EAAE,kBAAkB,EACrC,eAA2B,EAC3B,SAAqB,EACrB,gBAAuB,EACvB,YAAmB,EACnB,cAAc,EACd,sBAA8B,EAC9B,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,aAAa,GACd,EAAE,eAAe,2CA0MjB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1046,7 +1046,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1046
1046
|
targetY: 0,
|
|
1047
1047
|
targetZ: 0,
|
|
1048
1048
|
};
|
|
1049
|
-
console.log('[
|
|
1049
|
+
console.log('[api.start#isFlat-toggle]', newPos);
|
|
1050
1050
|
api.start({
|
|
1051
1051
|
camX: newPos.x,
|
|
1052
1052
|
camY: newPos.y,
|
|
@@ -1109,6 +1109,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1109
1109
|
targetZ: 0,
|
|
1110
1110
|
};
|
|
1111
1111
|
}
|
|
1112
|
+
console.log('[api.start#focus-target]', { focusTarget, isFlat, newPos });
|
|
1112
1113
|
api.start({
|
|
1113
1114
|
camX: newPos.x,
|
|
1114
1115
|
camY: newPos.y,
|
|
@@ -1141,6 +1142,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1141
1142
|
controlsRef.current.target.set(initialPos.targetX, initialPos.targetY, initialPos.targetZ);
|
|
1142
1143
|
controlsRef.current.update();
|
|
1143
1144
|
// Sync spring to match camera position (use immediate to avoid animation)
|
|
1145
|
+
console.log('[api.start#frame1-immediate]', initialPos);
|
|
1144
1146
|
api.start({
|
|
1145
1147
|
camX: initialPos.x,
|
|
1146
1148
|
camY: initialPos.y,
|
|
@@ -1219,6 +1221,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1219
1221
|
const resetToInitial = useCallback(() => {
|
|
1220
1222
|
const targetHeight = citySize * 1.1;
|
|
1221
1223
|
const targetZ = citySize * 1.3;
|
|
1224
|
+
console.log('[api.start#resetToInitial]', { targetHeight, targetZ });
|
|
1222
1225
|
api.start({
|
|
1223
1226
|
camX: 0,
|
|
1224
1227
|
camY: targetHeight,
|
|
@@ -1232,6 +1235,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1232
1235
|
const effectiveSize = size ?? citySize * 0.3;
|
|
1233
1236
|
const distance = Math.max(effectiveSize * 2, 50);
|
|
1234
1237
|
const height = Math.max(effectiveSize * 1.5, 40);
|
|
1238
|
+
console.log('[api.start#moveTo]', { x, z, height, distance });
|
|
1235
1239
|
api.start({
|
|
1236
1240
|
camX: x,
|
|
1237
1241
|
camY: height,
|
|
@@ -1261,6 +1265,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1261
1265
|
});
|
|
1262
1266
|
}
|
|
1263
1267
|
const config = options?.duration ? { duration: options.duration } : undefined;
|
|
1268
|
+
console.log('[api.start#setFlatView]', { x, z, height, options });
|
|
1264
1269
|
api.start({
|
|
1265
1270
|
camX: x,
|
|
1266
1271
|
camY: height,
|
|
@@ -1288,6 +1293,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1288
1293
|
const animConfig = options?.duration
|
|
1289
1294
|
? { duration: options.duration, easing: (t) => t }
|
|
1290
1295
|
: { tension: 60, friction: 20 };
|
|
1296
|
+
console.log('[api.start#setTarget]', { x, y, z, newCamX, newCamY, newCamZ });
|
|
1291
1297
|
api.start({
|
|
1292
1298
|
camX: newCamX,
|
|
1293
1299
|
camY: newCamY,
|
|
@@ -1535,7 +1541,10 @@ const AnimatedCamera = React.memo(function AnimatedCamera({ citySize, isFlat, fo
|
|
|
1535
1541
|
ONE: touchOneAction(controlsConfig.oneFingerTouch),
|
|
1536
1542
|
TWO: touchTwoAction(controlsConfig.twoFingerTouch),
|
|
1537
1543
|
}), [controlsConfig.oneFingerTouch, controlsConfig.twoFingerTouch]);
|
|
1538
|
-
return (_jsxs(_Fragment, { children: [_jsx(PerspectiveCamera, { makeDefault: true, fov: 50, near: 1,
|
|
1544
|
+
return (_jsxs(_Fragment, { children: [_jsx(PerspectiveCamera, { makeDefault: true, fov: 50, near: 1,
|
|
1545
|
+
// far must comfortably exceed the camera's maxDistance, otherwise
|
|
1546
|
+
// the city clips out of view when consumers raise maxDistance.
|
|
1547
|
+
far: Math.max(citySize * 10, (controlsConfig.maxDistance ?? citySize * 3) * 1.5) }), _jsx(MapControls, { ref: controlsRef, enableDamping: true, dampingFactor: 0.05, minDistance: controlsConfig.minDistance ?? 10, maxDistance: controlsConfig.maxDistance ?? citySize * 3, maxPolarAngle: Math.PI / 2.1, mouseButtons: mouseButtons, touches: touches, enableZoom: controlsConfig.wheel !== 'pan', panSpeed: controlsConfig.panSpeed ?? 1, rotateSpeed: controlsConfig.rotateSpeed ?? 1, zoomSpeed: controlsConfig.zoomSpeed ?? 1 })] }));
|
|
1539
1548
|
}, (prevProps, nextProps) => {
|
|
1540
1549
|
// Custom comparison: re-render when isFlat, citySize, maxBuildingHeight,
|
|
1541
1550
|
// cameraControls, or focusTarget change. focusTarget is included so the
|
package/package.json
CHANGED
|
@@ -1411,9 +1411,16 @@ export interface CameraControlsConfig {
|
|
|
1411
1411
|
rotateSpeed?: number;
|
|
1412
1412
|
/** Zoom speed multiplier. Default: 1 */
|
|
1413
1413
|
zoomSpeed?: number;
|
|
1414
|
+
/** Closest the camera can get to its target (world units). Default: 10. */
|
|
1415
|
+
minDistance?: number;
|
|
1416
|
+
/** Farthest the camera can get from its target (world units). Default:
|
|
1417
|
+
* `citySize * 3`. Override with a larger value when consumers need to
|
|
1418
|
+
* zoom out beyond that — e.g. fitting the city into a small canvas
|
|
1419
|
+
* sub-rect via `setCameraFlatView`. */
|
|
1420
|
+
maxDistance?: number;
|
|
1414
1421
|
}
|
|
1415
1422
|
|
|
1416
|
-
export const DEFAULT_CAMERA_CONTROLS: Required<Omit<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed'>> & Pick<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed'> = {
|
|
1423
|
+
export const DEFAULT_CAMERA_CONTROLS: Required<Omit<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed' | 'minDistance' | 'maxDistance'>> & Pick<CameraControlsConfig, 'panSpeed' | 'rotateSpeed' | 'zoomSpeed' | 'minDistance' | 'maxDistance'> = {
|
|
1417
1424
|
leftDrag: 'pan',
|
|
1418
1425
|
rightDrag: 'rotate',
|
|
1419
1426
|
middleDrag: 'zoom',
|
|
@@ -1761,7 +1768,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
1761
1768
|
targetZ: 0,
|
|
1762
1769
|
};
|
|
1763
1770
|
|
|
1764
|
-
console.log('[
|
|
1771
|
+
console.log('[api.start#isFlat-toggle]', newPos);
|
|
1765
1772
|
api.start({
|
|
1766
1773
|
camX: newPos.x,
|
|
1767
1774
|
camY: newPos.y,
|
|
@@ -1831,6 +1838,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
1831
1838
|
};
|
|
1832
1839
|
}
|
|
1833
1840
|
|
|
1841
|
+
console.log('[api.start#focus-target]', { focusTarget, isFlat, newPos });
|
|
1834
1842
|
api.start({
|
|
1835
1843
|
camX: newPos.x,
|
|
1836
1844
|
camY: newPos.y,
|
|
@@ -1869,6 +1877,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
1869
1877
|
controlsRef.current.update();
|
|
1870
1878
|
|
|
1871
1879
|
// Sync spring to match camera position (use immediate to avoid animation)
|
|
1880
|
+
console.log('[api.start#frame1-immediate]', initialPos);
|
|
1872
1881
|
api.start({
|
|
1873
1882
|
camX: initialPos.x,
|
|
1874
1883
|
camY: initialPos.y,
|
|
@@ -1959,6 +1968,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
1959
1968
|
const targetHeight = citySize * 1.1;
|
|
1960
1969
|
const targetZ = citySize * 1.3;
|
|
1961
1970
|
|
|
1971
|
+
console.log('[api.start#resetToInitial]', { targetHeight, targetZ });
|
|
1962
1972
|
api.start({
|
|
1963
1973
|
camX: 0,
|
|
1964
1974
|
camY: targetHeight,
|
|
@@ -1974,6 +1984,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
1974
1984
|
const distance = Math.max(effectiveSize * 2, 50);
|
|
1975
1985
|
const height = Math.max(effectiveSize * 1.5, 40);
|
|
1976
1986
|
|
|
1987
|
+
console.log('[api.start#moveTo]', { x, z, height, distance });
|
|
1977
1988
|
api.start({
|
|
1978
1989
|
camX: x,
|
|
1979
1990
|
camY: height,
|
|
@@ -2005,6 +2016,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
2005
2016
|
});
|
|
2006
2017
|
}
|
|
2007
2018
|
const config = options?.duration ? { duration: options.duration } : undefined;
|
|
2019
|
+
console.log('[api.start#setFlatView]', { x, z, height, options });
|
|
2008
2020
|
api.start({
|
|
2009
2021
|
camX: x,
|
|
2010
2022
|
camY: height,
|
|
@@ -2039,6 +2051,7 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
2039
2051
|
? { duration: options.duration, easing: (t: number) => t }
|
|
2040
2052
|
: { tension: 60, friction: 20 };
|
|
2041
2053
|
|
|
2054
|
+
console.log('[api.start#setTarget]', { x, y, z, newCamX, newCamY, newCamZ });
|
|
2042
2055
|
api.start({
|
|
2043
2056
|
camX: newCamX,
|
|
2044
2057
|
camY: newCamY,
|
|
@@ -2335,13 +2348,20 @@ const AnimatedCamera = React.memo(function AnimatedCamera({
|
|
|
2335
2348
|
|
|
2336
2349
|
return (
|
|
2337
2350
|
<>
|
|
2338
|
-
<PerspectiveCamera
|
|
2351
|
+
<PerspectiveCamera
|
|
2352
|
+
makeDefault
|
|
2353
|
+
fov={50}
|
|
2354
|
+
near={1}
|
|
2355
|
+
// far must comfortably exceed the camera's maxDistance, otherwise
|
|
2356
|
+
// the city clips out of view when consumers raise maxDistance.
|
|
2357
|
+
far={Math.max(citySize * 10, (controlsConfig.maxDistance ?? citySize * 3) * 1.5)}
|
|
2358
|
+
/>
|
|
2339
2359
|
<MapControls
|
|
2340
2360
|
ref={controlsRef}
|
|
2341
2361
|
enableDamping
|
|
2342
2362
|
dampingFactor={0.05}
|
|
2343
|
-
minDistance={10}
|
|
2344
|
-
maxDistance={citySize * 3}
|
|
2363
|
+
minDistance={controlsConfig.minDistance ?? 10}
|
|
2364
|
+
maxDistance={controlsConfig.maxDistance ?? citySize * 3}
|
|
2345
2365
|
maxPolarAngle={Math.PI / 2.1}
|
|
2346
2366
|
mouseButtons={mouseButtons}
|
|
2347
2367
|
touches={touches}
|