show_hyperboloid_flat option
This commit is contained in:
parent
4362f06b0b
commit
8c4b700466
|
@ -515,6 +515,7 @@ EX void initConfig() {
|
||||||
addsaver(vid.binary_width, "binary-tiling-width", 1);
|
addsaver(vid.binary_width, "binary-tiling-width", 1);
|
||||||
addsaver(pconf.collignon_parameter, "collignon-parameter", 1);
|
addsaver(pconf.collignon_parameter, "collignon-parameter", 1);
|
||||||
addsaver(pconf.collignon_reflected, "collignon-reflect", false);
|
addsaver(pconf.collignon_reflected, "collignon-reflect", false);
|
||||||
|
addsaver(pconf.show_hyperboloid_flat, "hyperboloid-flat", true);
|
||||||
|
|
||||||
addsaver(pconf.aitoff_parameter, "aitoff-parameter");
|
addsaver(pconf.aitoff_parameter, "aitoff-parameter");
|
||||||
addsaver(pconf.miller_parameter, "miller-parameter");
|
addsaver(pconf.miller_parameter, "miller-parameter");
|
||||||
|
|
|
@ -2164,7 +2164,7 @@ EX void reverse_side_priorities() {
|
||||||
// on the sphere, parts on the back are drawn first
|
// on the sphere, parts on the back are drawn first
|
||||||
EX void draw_backside() {
|
EX void draw_backside() {
|
||||||
DEBBI(DF_GRAPH, ("draw_backside"));
|
DEBBI(DF_GRAPH, ("draw_backside"));
|
||||||
if(pmodel == mdHyperboloid && hyperbolic) {
|
if(pmodel == mdHyperboloid && hyperbolic && pconf.show_hyperboloid_flat) {
|
||||||
dynamicval<eModel> dv (pmodel, mdHyperboloidFlat);
|
dynamicval<eModel> dv (pmodel, mdHyperboloidFlat);
|
||||||
for(auto& ptd: ptds)
|
for(auto& ptd: ptds)
|
||||||
if(!among(ptd->prio, PPR::MOBILE_ARROW, PPR::OUTCIRCLE, PPR::CIRCLE))
|
if(!among(ptd->prio, PPR::MOBILE_ARROW, PPR::OUTCIRCLE, PPR::CIRCLE))
|
||||||
|
|
2
hyper.h
2
hyper.h
|
@ -242,6 +242,7 @@ struct projection_configuration {
|
||||||
ld model_orientation, halfplane_scale, model_orientation_yz;
|
ld model_orientation, halfplane_scale, model_orientation_yz;
|
||||||
ld collignon_parameter;
|
ld collignon_parameter;
|
||||||
ld aitoff_parameter, miller_parameter, loximuthal_parameter, winkel_parameter;
|
ld aitoff_parameter, miller_parameter, loximuthal_parameter, winkel_parameter;
|
||||||
|
bool show_hyperboloid_flat;
|
||||||
bool collignon_reflected;
|
bool collignon_reflected;
|
||||||
string formula;
|
string formula;
|
||||||
eModel basic_model;
|
eModel basic_model;
|
||||||
|
@ -272,6 +273,7 @@ struct projection_configuration {
|
||||||
miller_parameter = .8;
|
miller_parameter = .8;
|
||||||
loximuthal_parameter = 0;
|
loximuthal_parameter = 0;
|
||||||
winkel_parameter = .5;
|
winkel_parameter = .5;
|
||||||
|
show_hyperboloid_flat = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2000,6 +2000,7 @@ EX void draw_model_elements() {
|
||||||
}
|
}
|
||||||
|
|
||||||
case mdHyperboloid: {
|
case mdHyperboloid: {
|
||||||
|
if(!pconf.show_hyperboloid_flat) return;
|
||||||
if(hyperbolic) {
|
if(hyperbolic) {
|
||||||
#if CAP_QUEUE
|
#if CAP_QUEUE
|
||||||
curvepoint(point3(0,0,1));
|
curvepoint(point3(0,0,1));
|
||||||
|
|
|
@ -445,6 +445,8 @@ EX namespace models {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(among(vpmodel, mdDisk, mdBall, mdHyperboloid, mdRotatedHyperboles, mdPanini)) {
|
if(among(vpmodel, mdDisk, mdBall, mdHyperboloid, mdRotatedHyperboles, mdPanini)) {
|
||||||
|
dynamicval<eModel> v(vpconf.model, vpconf.model);
|
||||||
|
if(vpmodel == mdHyperboloid) vpconf.model = mdDisk;
|
||||||
dialog::addSelItem(XLAT("projection distance"), fts(vpconf.alpha) + " (" + current_proj_name() + ")", 'p');
|
dialog::addSelItem(XLAT("projection distance"), fts(vpconf.alpha) + " (" + current_proj_name() + ")", 'p');
|
||||||
dialog::add_action(projectionDialog);
|
dialog::add_action(projectionDialog);
|
||||||
}
|
}
|
||||||
|
@ -615,6 +617,10 @@ EX namespace models {
|
||||||
dialog::scaleLog();
|
dialog::scaleLog();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(vpmodel == mdHyperboloid) {
|
||||||
|
dialog::addBoolItem_action(XLAT("show flat"), pconf.show_hyperboloid_flat, 'b');
|
||||||
|
}
|
||||||
|
|
||||||
if(vpmodel == mdCollignon) {
|
if(vpmodel == mdCollignon) {
|
||||||
dialog::addSelItem(XLAT("parameter"), fts(vpconf.collignon_parameter) + (vpconf.collignon_reflected ? " (r)" : ""), 'b');
|
dialog::addSelItem(XLAT("parameter"), fts(vpconf.collignon_parameter) + (vpconf.collignon_reflected ? " (r)" : ""), 'b');
|
||||||
|
|
Loading…
Reference in New Issue