refactor(camera): declarative keyframe tour, reverse-trig stationary tracking & 3-way framework parity - #59
Merged
dkhawk merged 4 commits intoAug 28, 2026
Conversation
LoyalAbbas
requested review from
dkhawk and
kikoso
and removed request for
dkhawk
August 28, 2026 12:16
LoyalAbbas
changed the base branch from
feat/drawsOccludedSegments_flag_aca_ui_improvement
to
feature/new_features_with_0.2.2_sdk
August 28, 2026 14:39
LoyalAbbas
force-pushed
the
feat/advance_camera_animation_refactor
branch
from
August 28, 2026 17:47
a824ea5 to
df21588
Compare
…tationary tracking - Implement StationaryCameraTracker math controller with ENU inverse spherical trigonometry for fixed-vantage camera tracking - Add 5-step keyframe queue tour (high-altitude swoop, dwell pause, 360 orbit, stationary vantage tracking flight, and native flyTo transition to Coit Tower) - Modernize UI controls with Material 3 dropdown menu button and structured HTML help dialog across Kotlin Views, Java Views, and Jetpack Compose - Ensure consistent glTF model coordinate alignment, midpoint jump teleportation, and post-flight destination persistence - Add comprehensive unit test coverage with Google Truth assertions across domain controllers
… subtitles - Add framework indicator subtitles (Kotlin Views, Java Views, Jetpack Compose) to control panel headers and top toolbars - Fix LiveData approach button label and sub-options observation in Java Views Activity - Correct chase camera heading for High-Rate Frame Dispatcher to follow flight path bearing (106.2°) - Add delayed onMap3DViewReady initialization workaround to ensure reliable initial camera and entity setup
dkhawk
force-pushed
the
feat/advance_camera_animation_refactor
branch
from
August 28, 2026 21:59
df21588 to
2b6e6b0
Compare
dkhawk
added a commit
that referenced
this pull request
Aug 28, 2026
…llowing, Data Viz, Roadmap Mode, FOV) (#50) * Add sample demos for Cloud Styling, Roadmap Mode, Data Visualization, Field of View, Path Following, and Advanced Camera Animation * feat(samples): polish 0.2.2 showcase features and apply spotless formatting - Add showcase demos for Advanced Camera Animation, Path Following, Data Visualization, Roadmap Mode, and Field of View - Synchronize hardware frame loops to VSYNC and improve touch-fade UX - Format codebase using spotless to adhere to 4-space ktlint rules * test(visual): optimize visual test synchronization using MapSteady listener * fix(compose): preserve Cloud Styling skeleton placeholder to match main baseline * feat(compose): implement Data Visualization (Flood Fill) demo in ComposeDemos * refactor(samples): polish 0.2.2 showcase samples with collapsible UI, auto-fade, and literate docs (#54) * Enhance Advanced Camera Animation and Path Following samples - Advanced Camera Animation: - Add modular step animation pipeline (FlyToStep, OrbitStep, DwellStep, FlyAroundStep, KeyframeStep). - Add high-altitude San Francisco starting camera view. - Implement full reset and continuous orbit support. - Sync Java, Kotlin, and Jetpack Compose implementations. - Path Following: - Implement two-polyline progress tracking with wide blue base route (lower z-index) and narrow purple progress route (higher z-index). - Use in-place fixed polyline IDs to eliminate rendering flickering. - Default altitude mode to 'Clamp to Ground' with support for Relative to Ground, Relative to Mesh, and Absolute. - Add dynamic path height slider to avoid z-fighting with terrain. - Add collapsible control panel with explicit collapse/expand button, auto-slide dismissal, and subtle idle opacity. - Extract all hardcoded strings into strings.xml resources. - Align Java and Kotlin implementations. * feat(fieldofview,datavisualization): polish FOV and Data Visualization with collapsible cards and literate docs * feat(roadmapmode): polish Roadmap Mode with collapsible header and literate docs * feat(routes): polish Routes API sample with collapsible control panel, auto-fade, and literate docs * docs(samples): augment literate comments explaining 3D coordinates, extrusion, and smoothing * build: untrack and gitignore gradle-daemon-jvm.properties * docs: update copyright headers to 2026 for camera animation step classes * fix(samples): address PR review feedback on animation timing, tour resume, onPause, and TransitionManager collapse * fix(lint): resolve github-advanced-security warnings for text size, layout hierarchy, and KTX color parsing (#55) * refactor(path-following): clean MVVM architecture, custom 3D gesture engine, and modern UI controls (#58) * refactor(path-following): clean MVVM architecture, custom 3D gesture engine, and modern UI controls * test(path-following): add unit test suites for PathEngine and PathFollowingViewModel * refactor(path-following): clean PathPlaybackState data class and remove unused strings * refactor(camera): declarative keyframe tour, reverse-trig stationary tracking & 3-way framework parity (#59) * feat(camera): implement declarative keyframe tour with reverse-trig stationary tracking - Implement StationaryCameraTracker math controller with ENU inverse spherical trigonometry for fixed-vantage camera tracking - Add 5-step keyframe queue tour (high-altitude swoop, dwell pause, 360 orbit, stationary vantage tracking flight, and native flyTo transition to Coit Tower) - Modernize UI controls with Material 3 dropdown menu button and structured HTML help dialog across Kotlin Views, Java Views, and Jetpack Compose - Ensure consistent glTF model coordinate alignment, midpoint jump teleportation, and post-flight destination persistence - Add comprehensive unit test coverage with Google Truth assertions across domain controllers * fix(camera): synchronize UI state across frameworks and add framework subtitles - Add framework indicator subtitles (Kotlin Views, Java Views, Jetpack Compose) to control panel headers and top toolbars - Fix LiveData approach button label and sub-options observation in Java Views Activity - Correct chase camera heading for High-Rate Frame Dispatcher to follow flight path bearing (106.2°) - Add delayed onMap3DViewReady initialization workaround to ensure reliable initial camera and entity setup * docs(camera): document onMap3DViewReady initialization delay workaround * docs(camera): clean KDoc math formatting for Android Studio and Dokka compatibility --------- Co-authored-by: Dale Hawkins <107309+dkhawk@users.noreply.github.com> * fix(lint): resolve StringFormatInvalid and SuspiciousIndentation warnings * fix(lint): resolve version catalog, hardcoded text, and accessibility warnings * feat(branding): add framework-specific Google Maps 3D launcher icons for Kotlin, Java, and Compose --------- Co-authored-by: Dale Hawkins <107309+dkhawk@users.noreply.github.com>
googlemaps-bot
pushed a commit
that referenced
this pull request
Aug 28, 2026
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.
Summary
Refactors the Advanced Camera Animation sample into a clean, educational 5-layer architecture with 100% functional, visual, and architectural parity across Kotlin Views, Java Views, and Jetpack Compose.
Introduces the Reverse-Trigonometry Stationary Camera Tracking Engine (
StationaryCameraTracker), a declarative 5-Step Keyframe Tour, Material 3 controls, single-source HTML help dialogs, framework indicators, and a comprehensive Truth-asserted JVM unit test suite.Key Changes & Enhancements
📐 1. Reverse-Trig Stationary Camera Tracking Engine
StationaryCameraTrackerin local East-North-Up (ENU) coordinates using inverse spherical trigonometry to lock a stationary 3D spatial eye while tracking a moving entity across San Francisco Bay.StationaryCameraTrackerTest.ktverifyingheading = 286.2°(facing back along the incoming flight corridor).🎨 3. UI Modernization & Framework Parity
OutlinedButton+DropdownMenupopup.strings.xml(help_dialog_advanced_animation_message) rendered withHtmlCompatacross all 3 frameworks.Kotlin Views,Java Views,Jetpack Compose) on the control panel header and app bar.⏱️ 4. Stability, Timing & Model Rendering Fixes
Airplane.glb(modeled along hBcZ$) with geodetic navigation bearings.currentCamerastate to eliminate camera snapping on recomposition.postDelayed(..., 350L)timing workaround inSampleBaseActivityand activities.🧪 5. Unit Test Pyramid
StationaryCameraTrackerTest,EntityAnimatorTest,WorldControllerTest,TourPlaybackControllerTest, andAdvancedCameraAnimationViewModelTest.