Orthros/orthros-network/src/starchart/star.rs
2025-10-24 21:02:35 +02:00

127 lines
2.2 KiB
Rust

use crate::SCALEAU;
const SOLARRADIUSTOLY: f32 = 7.35355e-8;
fn solar_radius_to_ly_scaled(r: f32) -> f32 {
r * SOLARRADIUSTOLY * SCALEAU
}
pub enum StarClass {
MType,
BType,
GType,
}
pub struct StarInfo {
pub name: String,
pub class: StarClass,
pub diameter: f32,
}
pub fn star_diameter_range(class: &StarClass) -> std::ops::Range<f32> {
match class {
StarClass::MType => solar_radius_to_ly_scaled(0.102)..solar_radius_to_ly_scaled(0.7),
StarClass::BType => solar_radius_to_ly_scaled(1.8)..solar_radius_to_ly_scaled(6.6),
StarClass::GType => solar_radius_to_ly_scaled(0.96)..solar_radius_to_ly_scaled(1.15),
}
}
// const STARSIZES: &
pub const STARS: &[&str] = &[
"Sun",
"Sirius",
"Canopus",
"Alpha Centauri",
"Arcturus",
"Vega",
"Capella",
"Rigel",
"Procyon",
"Achernar",
"Betelgeuse",
"Hadar",
"Altair",
"Acrux",
"Aldebaran",
"Antares",
"Spica",
"Pollux",
"Fomalhaut",
"Deneb",
"Mimosa",
"Regulus",
"Adhara",
"Shaula",
"Castor",
"Gacrux",
"Bellatrix",
"Elnath",
"Miaplacidus",
"Alnilam",
"Alnair",
"Alioth",
"Dubhe",
"Alkaid",
"Alhena",
"Suhail",
"Mirfak",
"Wezen",
"Sargas",
"Avior",
"Kaus Australis",
"Alphard",
"Hamal",
"Diphda",
"Peacock",
"Menkalinan",
"Rasalhague",
"Algieba",
"Markab",
"Polaris",
"Almach",
"Zubenelgenubi",
"Alpherg",
"Rasalgethi",
"Mira",
"Alsephina",
"Caph",
"Nunki",
"Sadalmelik",
"Merak",
"Ankaa",
"Eltanin",
"Aludra",
"Kochab",
"Zosma",
"Menkent",
"Muhlifain",
"Nashira",
"Algol",
"Denebola",
"Scheat",
"Alnitak",
"Mintaka",
"Izar",
"Saiph",
"Phecda",
"Tureis",
"Alcor",
"Meissa",
"Sadr",
"Atlas",
"Pleione",
"Electra",
"Taygeta",
"Maia",
"Celaeno",
"Sterope",
"Merope",
"Alrakis",
"Tarf",
"Rukbat",
"Wasat",
"Thuban",
"Zubeneschamali",
"Vindemiatrix",
"Lesath",
"Gienah",
"Tarazed",
"Tiaki",
"Teegarden's Star",
];