mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-20 17:51:19 -05:00
Make use of the new map feature in codegen (#1801)
This commit is contained in:
@@ -150,7 +150,7 @@ namespace {
|
||||
// the Renderable.
|
||||
std::filesystem::path geometryFile;
|
||||
|
||||
enum class ScaleUnit {
|
||||
enum class [[codegen::map(openspace::DistanceUnit)]] ScaleUnit {
|
||||
Nanometer,
|
||||
Micrometer,
|
||||
Millimeter,
|
||||
@@ -189,7 +189,7 @@ namespace {
|
||||
// In format 'YYYY MM DD hh:mm:ss'.
|
||||
std::optional<std::string> animationStartTime [[codegen::datetime()]];
|
||||
|
||||
enum class AnimationTimeUnit {
|
||||
enum class [[codegen::map(openspace::TimeUnit)]] AnimationTimeUnit {
|
||||
Nanosecond,
|
||||
Microsecond,
|
||||
Millisecond,
|
||||
@@ -318,56 +318,7 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary)
|
||||
if (std::holds_alternative<Parameters::ScaleUnit>(*p.modelScale)) {
|
||||
Parameters::ScaleUnit scaleUnit =
|
||||
std::get<Parameters::ScaleUnit>(*p.modelScale);
|
||||
DistanceUnit distanceUnit;
|
||||
|
||||
switch (scaleUnit) {
|
||||
case Parameters::ScaleUnit::Nanometer:
|
||||
distanceUnit = DistanceUnit::Nanometer;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Micrometer:
|
||||
distanceUnit = DistanceUnit::Micrometer;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Millimeter:
|
||||
distanceUnit = DistanceUnit::Millimeter;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Centimeter:
|
||||
distanceUnit = DistanceUnit::Centimeter;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Decimeter:
|
||||
distanceUnit = DistanceUnit::Decimeter;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Meter:
|
||||
distanceUnit = DistanceUnit::Meter;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Kilometer:
|
||||
distanceUnit = DistanceUnit::Kilometer;
|
||||
break;
|
||||
|
||||
// Weird units
|
||||
case Parameters::ScaleUnit::Thou:
|
||||
distanceUnit = DistanceUnit::Thou;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Inch:
|
||||
distanceUnit = DistanceUnit::Inch;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Foot:
|
||||
distanceUnit = DistanceUnit::Foot;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Yard:
|
||||
distanceUnit = DistanceUnit::Yard;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Chain:
|
||||
distanceUnit = DistanceUnit::Chain;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Furlong:
|
||||
distanceUnit = DistanceUnit::Furlong;
|
||||
break;
|
||||
case Parameters::ScaleUnit::Mile:
|
||||
distanceUnit = DistanceUnit::Mile;
|
||||
break;
|
||||
default:
|
||||
throw ghoul::MissingCaseException();
|
||||
}
|
||||
DistanceUnit distanceUnit = codegen::map<DistanceUnit>(scaleUnit);
|
||||
_modelScale = toMeter(distanceUnit);
|
||||
}
|
||||
else if (std::holds_alternative<double>(*p.modelScale)) {
|
||||
@@ -415,27 +366,7 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary)
|
||||
{
|
||||
Parameters::AnimationTimeUnit animationTimeUnit =
|
||||
std::get<Parameters::AnimationTimeUnit>(*p.animationTimeScale);
|
||||
TimeUnit timeUnit;
|
||||
|
||||
switch (animationTimeUnit) {
|
||||
case Parameters::AnimationTimeUnit::Nanosecond:
|
||||
timeUnit = TimeUnit::Nanosecond;
|
||||
break;
|
||||
case Parameters::AnimationTimeUnit::Microsecond:
|
||||
timeUnit = TimeUnit::Microsecond;
|
||||
break;
|
||||
case Parameters::AnimationTimeUnit::Millisecond:
|
||||
timeUnit = TimeUnit::Millisecond;
|
||||
break;
|
||||
case Parameters::AnimationTimeUnit::Second:
|
||||
timeUnit = TimeUnit::Second;
|
||||
break;
|
||||
case Parameters::AnimationTimeUnit::Minute:
|
||||
timeUnit = TimeUnit::Minute;
|
||||
break;
|
||||
default:
|
||||
throw ghoul::MissingCaseException();
|
||||
}
|
||||
TimeUnit timeUnit = codegen::map<TimeUnit>(animationTimeUnit);
|
||||
|
||||
_geometry->setTimeScale(static_cast<float>(
|
||||
convertTime(1.0, timeUnit, TimeUnit::Second))
|
||||
|
||||
Reference in New Issue
Block a user