Skip to content

feat: Expand window types, animations, and first-person behavior#295

Merged
wass08 merged 10 commits intopascalorg:mainfrom
sudhir9297:feat/window-improvement
May 7, 2026
Merged

feat: Expand window types, animations, and first-person behavior#295
wass08 merged 10 commits intopascalorg:mainfrom
sudhir9297:feat/window-improvement

Conversation

@sudhir9297
Copy link
Copy Markdown
Contributor

@sudhir9297 sudhir9297 commented May 7, 2026

What does this PR do?

This PR significantly expands the window system with new window types, animated open/close behavior, manual open controls, shape-specific settings, and improved first-person interaction.

It enables:

  • Multiple window types
  • Smooth animated open/close interactions
  • Manual open-state sliders for operable windows
  • Rounded and arched shape support where appropriate
  • First-person interaction for operable windows
  • Cleaner separation between authored window state and runtime animation

Window Types

  • Added window types:
    • Fixed
    • Sliding
    • Casement
    • Awning
    • Single-hung
    • Double-hung
    • Bay
    • Bow
    • Louvered

Window Behavior

  • Sliding windows:
    • One panel slides open and closed
    • Supports animated and manually controlled open state
    • Corner shape option is hidden
  • Casement windows:
    • Supports single casement and double/french-style casement
    • Supports corner shape options
    • Fixes curved panel behavior with large corner radius
  • Awning windows:
    • Opens upward
    • Supports corner shape options
    • Shares behavior with hopper through direction setting
  • Hopper behavior:
    • Merged into awning using an open direction setting
    • Opens downward when direction is set to down
    • Supports corner shape options
  • Single-hung and double-hung windows:
    • Animate open/close smoothly
    • Corner shape is restricted to rectangle
  • Louvered windows:
    • Slats animate open/close smoothly
    • Corner shape support was fixed
  • Bay and bow windows:
    • Corner shape options are hidden
    • Sill is disabled by default
    • Bay top and bottom slabs were fixed
    • Bow uses a smoother curved path
    • Bow top and bottom slabs follow the curved shape

Window Settings

  • Added window type selection in the window settings panel
  • Updated side menu type list to match the door-style vertical list
  • Added manual open slider support for:
    • Sliding
    • Casement
    • Awning
    • Hopper/downward awning
    • Single-hung
    • Double-hung
    • Louvered
  • Rounded shape disables sill by default
  • Bay and bow disable sill by default
  • Hidden unsupported corner shape options for:
    • Sliding
    • Single-hung
    • Double-hung
    • Bay
    • Bow

Animation & Interaction

  • Added animated open/close behavior:
    • R key toggles supported operable windows
    • Open slider stays in sync with toggle
    • Uses smooth tweened animation instead of instant jumps
  • Optimized direct animation paths for smoother behavior:
    • Sliding windows
    • Single-hung windows
    • Double-hung windows
    • Louvered windows
  • Extracted shared viewer window layout helpers so static mesh generation and animation use the same positioning math

First-Person View (FPV)

  • Window interactions now work in FPV
  • Operable windows can be toggled from first-person mode
  • FPV interaction supports animated open/close behavior
  • FPV interaction uses the same runtime window open state as the editor controls

Architecture Improvements

  • Window nodes store authored final state
  • Runtime animation state is transient and kept in interactive state
  • Added a viewer-layer window animation system
  • Added window animation completion events
  • Shared window layout helpers live in viewer
  • Renderer and animation system use unified open-state mapping
  • Editor-only settings, tools, and FPV behavior remain inside the editor layer

@sudhir9297 sudhir9297 changed the title feat:window improvement feat: Expand window types, animations, and first-person behavior May 7, 2026
@wass08 wass08 merged commit 485ad74 into pascalorg:main May 7, 2026
1 check passed
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.

2 participants