Open
Conversation
(cherry picked from commit af6b81f3c44aba9fd0b1210e515c57158d820234)
Port selection management from the editor as a registered service, merging the data structure and manager into a single SelectionService that integrates with the existing service event system. (cherry picked from commit 780a84fe91cf385b96f6b4afd53d3682369bdbf3)
Port the Operation system from the editor, removing all DOM dependencies. Priority-based listener dispatch lets Gizmo (99) intercept events before Camera (98) by returning false to break the event chain. (cherry picked from commit 32d437b0ef42ac9e38fb8657a5bf94b1db7453ea)
(cherry picked from commit 81dd58ded41c2c38aca194f80da7a4859c46c82b)
(cherry picked from commit 36697032ea2316817b1d5289a853946009a5aafb)
(cherry picked from commit 4ce14db16a8b69d54e5615b3d4553a7305bdd569)
(cherry picked from commit 00315df799fdc2fe505646414c2b0fc09f25cf0c)
(cherry picked from commit 673628be88429e55050c9b153d163a043e8be654)
Port the editor's 3D camera controller with 4 modes (idle, orbit, pan, wander) to the CLI. Includes ModeBase3D implementing IState, the FSM transitions between all modes, grid/origin-axis updates, focus/align operations, zoom, projection switching, and tween-based animations. Replaces editor-specific APIs (cce, MVec3/MQuat, Shortcut, Profile) with CLI equivalents (Service proxy, cc Vec3/Quat, direct key mapping). (cherry picked from commit ca543b03407ab6bf36881cf50c65615ec1221963)
(cherry picked from commit 7decf369df883315f8eff823b4a0caebb7a40faa)
Port the editor's 2D camera controller to CLI, including ModeBase2D, IdleMode2D, PanMode2D, and the main CameraController2D class with grid-based coordinate system, zoom, pan, focus, and origin axis support. (cherry picked from commit 3012c6ec2c4118df414ec8914d608541b1202423)
…ocations Origin axis position data now matches the 2D mesh format (RG32F pairs). WanderMode.onUpdate uses class-level scratch variables instead of allocating ~8 Vec3 objects per frame. (cherry picked from commit ef4da0e82fc24e92d3c884977bbde5881282a76e)
Create the top-level Camera service that orchestrates editor camera lifecycle including dual controller switching, operation event binding, camera property management, and scene focus. Register it into the service framework with interfaces for both public and internal use. (cherry picked from commit e6427167b5d0bff06751c9c99e44913aeffdfbda)
(cherry picked from commit 030fcf322491e8f35f5f7ab924b21c1529e5188c)
- Add active setter to CameraControllerBase for polymorphic access - Add wanderSpeed/enableAcceleration forwarding on CameraController3D - Fix EditorCameraComponent construction to use addComponent via createCamera - Clean up bindOperation to use Object.entries, fix Function type (cherry picked from commit 33205509f830f6ceb8462496f16e8bfaa3663be5)
…ransform-tool) (cherry picked from commit a07cabb8c77904189587865fde26cf8c50589a16)
Match editor source: use specific event names (tool-name-changed, etc.), add isLocked/validation guards in setters, fix SnapConfigs defaults and position copy semantics. (cherry picked from commit 560a313dec9c19e3354ef2238f86a2c3050e0a61)
Port the gizmo controller infrastructure from cocos-editor: Utilities (gizmo/utils/): - defines.ts: interfaces, DynamicMeshPrimitive, GizmoMouseEvent, flatPosition - controller-shape-collider.ts: ControllerShapeCollider component - engine-utils.ts: mesh creation, material setup, vertex/index buffer updates, raycast - controller-shape.ts: pure geometry math (cylinder, cone, quad, cube, torus, sphere, etc.) - controller-utils.ts: static factory methods for shapes (arrow, circle, disc, frustum, etc.) Controllers (gizmo/controller/): - base.ts: ControllerBase with handle management, mouse events, camera tracking - editable.ts: EditableController with edit handles that scale/face camera - quad.ts: QuadController for billboard quads - box.ts: BoxController (wireframe box with face highlight) - sphere.ts: SphereController (axis-aligned circles with border) - frustum.ts: FrustumController (camera frustum visualization) - icon.ts: IconController (distance-faded icon billboards) - world-axis.ts: WorldAxisController (scene gizmo axis indicator) - origin-axis.ts: OriginAxisController (world origin axis lines) All editor dependencies (External.*, cce.*, EditorCamera) replaced with lazy Service access pattern to avoid circular dependencies. (cherry picked from commit 8098a66561fa425d2ae82c8fa52bf885dd49512e)
Create gizmo-base.ts, gizmo-icon.ts, and index.ts in service/gizmo/base/,
adapting cce.*/Utils.* calls to lazy Service access via require('../../core/decorator').
(cherry picked from commit b5077cef2c664e63255f989aae58cadfaf66bee7)
Port 11 transform gizmo files from cocos-editor to cocos-cli: - TransformBaseGizmo: base class with node selection filtering - PositionController/PositionGizmo: position manipulation with grid snap - RotationController/RotationGizmo: rotation with graduation marks - ScaleController/ScaleGizmo: scale with axis slider visuals - RectangleController/RectGizmo: 2D rect editing (anchor/size) - ViewGizmo: empty gizmo for view mode - TransformGizmo: strategy delegator across all sub-gizmos CLI adaptations: lazy Service access, no pointer lock, no surface/vertex snap, simplified multi-node rect handling. (cherry picked from commit 9296af32715e83dc38264746c11d5356157f5dce)
(cherry picked from commit 12950ddc4b33060117fbbd3169c306ba0cb7bdfb)
- Add type/button/buttons fields to GizmoMouseEvent in defines.ts - Create node-utils.ts with getRaycastResultNodes and getRegionNodes helpers - Create gizmo-operation.ts routing mouse/keyboard events to gizmos at OperationPriority.Gizmo (99) (cherry picked from commit b00ba6a239d13154b7da981eadfacd199a051a6c)
- Use `multiple` param in _regionSelectNode to preserve selection on ctrl/meta - Filter locked/hidden nodes in getRegionNodes (matching getRaycastResultNodes) - Use getServiceProp() to safely access potentially-unregistered services (cherry picked from commit e9f3a2bf718c2f9f070dbb97c7b77e84a57a8538)
- Reset all state in clear() (_mouseDownRaycastGizmos, _regionSelecting, etc.) - Use Set for O(1) dedup in getRegionNodes instead of O(n) Array.includes (cherry picked from commit e309541a2d0fc3ba0001ba717b7b8c480f64135a)
Adds the gizmo registration system (gizmo-defines.ts) and ports three component gizmos from the editor: camera frustum, box collider, and directional light (including its inline direction-line controller). (cherry picked from commit d6701f7ae5355c4e8385549666f786acbbd78e93)
(cherry picked from commit bb37bbd195df4d12cf58fc35cff1812c1ac8796c)
(cherry picked from commit 6519185ee7ac4f5b561ef6fbaa038d705b81c462)
(cherry picked from commit 721e936af4fab9a4af3c5a6e2547cf7d311170a1)
…View (cherry picked from commit 3fb2d29e4d7c9be2615060ac8cb12022863cf602)
(cherry picked from commit 37a270d8b2552c5ae1127337ae67e36078e32750)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.