Circular layout for dummy track
etowahadams opened this issue · comments
Currently, dummy tracks can only be used in a linear layout. Based on disucssion in #946 ideally we'd also support circular layouts as well. Here's a first attempt at supporting circular dummy tracks.
![image](https://private-user-images.githubusercontent.com/14843470/256206639-34354d61-97ab-49a3-8dc0-493cfa1fa366.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyMTc0ODUsIm5iZiI6MTcyMTIxNzE4NSwicGF0aCI6Ii8xNDg0MzQ3MC8yNTYyMDY2MzktMzQzNTRkNjEtOTdhYi00OWEzLThkYzAtNDkzY2ZhMWZhMzY2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDExNTMwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzNTVhZGM1NzAyOTQzZDBiYmZmYzUwNDQwY2I3YzA0ZTJkNGYzOTFmYmU3ZTAwMDZjMDg3N2IwNzAwNDkyNGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ph03yJq71OMqc7DjoAXykth8DNk6FvCyMQ8_ebme1j4)
Challenges:
- Tracks in a circular layout get compiled into a HiGlass spec differently than in a linear layout: Unlike when a view layout is linear, each of these Gosling tracks will not have a corresponding HiGlass view. Instead they will become HiGlass tracks within the same view.
- Using a
serial
arrangement, tracks can be next to each other. We would want the same behavior with dummy tracks. See below for an example.
![image](https://private-user-images.githubusercontent.com/14843470/256208454-2eafbb5f-4cef-4dea-89b9-aa500e559ddd.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyMTc0ODUsIm5iZiI6MTcyMTIxNzE4NSwicGF0aCI6Ii8xNDg0MzQ3MC8yNTYyMDg0NTQtMmVhZmJiNWYtNGNlZi00ZGVhLTg5YjktYWE1MDBlNTU5ZGRkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDExNTMwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlhNGQ3NGNlMjUyYzRlOGFjNDI2ZTdlMWMzYzVmNDA5NmM2YzI5ZTE2MGI3M2Y3NzMyZTVlZjQ1MTNmMzhhYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.7mMAjmIsrNQGhrs5dEy-UfACie2a5bsk1W6nZhO5qeA)
Implementation approach:
In general, the circular dummy track should be drawn with d3arc
, which is also used in the brush track (brush-track.ts
).