Skip to content

feat(samples): implement occlusion toggles, dual-polyline path following, and 4-approach camera animations - #56

Closed
LoyalAbbas wants to merge 8 commits into
mainfrom
feat/drawsOccludedSegments_flag_aca_ui_improvement
Closed

feat(samples): implement occlusion toggles, dual-polyline path following, and 4-approach camera animations#56
LoyalAbbas wants to merge 8 commits into
mainfrom
feat/drawsOccludedSegments_flag_aca_ui_improvement

Conversation

@LoyalAbbas

Copy link
Copy Markdown
Collaborator

📋 Summary

This PR enhances the Path Following and Advanced Camera Animation sample features across Kotlin Views, Java Views, and Jetpack Compose with occlusion visualization toggles, dual-polyline rendering, dynamic altitude modes, 4 selectable camera animation approaches, and Compose parity.


🚀 Key Features & Improvements

1. 🛣️ Path Following (PathFollowingActivity)

  • Occlusion Visualization (drawsOccludedSegments):
    • Added an interactive toggle switch (switch_draws_occluded_segments) in Kotlin, Java, and Compose allowing polylines to render through or behind 3D terrain and building geometry.
  • Dual-Polyline Architecture:
    • Base Route: Wide blue static polyline (#4285F4, 16dp, zIndex = 1).
    • Progress Route: Narrow purple active polyline (#9C27B0, 8dp, zIndex = 2) that extends in real-time as the route is traversed.
    • In-Place Upserting: Fixed polyline IDs (path_following_static_route, path_following_progress_route) eliminate rendering flicker.
  • Jetpack Compose 100% Parity:
    • Upgraded Compose PathFollowingActivity.kt with dual-polyline rendering, 4 Altitude Modes selector (CLAMP_TO_GROUND, RELATIVE_TO_GROUND, RELATIVE_TO_MESH, ABSOLUTE), Path Height slider (0–10m), aligned SF Urban & CA Rural datasets, and collapsible UI with idle auto-fade.

2. 🎬 Advanced Camera Animation (AdvancedCameraAnimationActivity)

  • 4 Selectable Animation Approaches:
    • Added UI RadioGroup (rg_animation_approach) to showcase 4 distinct camera animation techniques in Kotlin and Java:
      1. Simple flyTo: Native Maps 3D camera transition.
      2. Keyframe Queue Tour: Multi-step sequential tour across San Francisco landmarks.
      3. High-Rate Frame Dispatcher Loop: VSYNC/Choreographer-synced continuous camera flight at 400 m/s.
      4. 360° Orbit Spin: Smooth 360-degree continuous camera orbit around landmarks.
  • Java Architecture Refactoring:
    • Consolidated separate step classes into clean, cohesive step models matching the Kotlin architecture.
  • Control Panel UI Polish:
    • Updated control_panel_advanced_animation.xml and strings.xml with approach selector radio buttons, tour step cards, and status indicators.

3. 🧪 Testing & Verification

  • Added PathFollowingVisualTest.kt in ComposeDemos to match Kotlin and Java visual regression coverage with the Gemini API testing pipeline.

LoyalAbbas and others added 8 commits August 12, 2026 15:49
… Field of View, Path Following, and Advanced Camera Animation
…atting

- 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
… 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
@LoyalAbbas
LoyalAbbas requested review from dkhawk and kikoso August 27, 2026 14:23

@kikoso kikoso left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dkhawk

dkhawk commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Closing as superseded by PR #50, which merged all 0.2.2 showcase features, architecture refactorings, Jetpack Compose parity, and branded icons directly into main.

@dkhawk dkhawk closed this Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants