arb:: new command cscale

This commit is contained in:
Zeno Rogue 2020-05-30 20:00:09 +02:00
parent 07b1eaeda5
commit 21e256fe12
2 changed files with 14 additions and 0 deletions

View File

@ -37,6 +37,8 @@ struct arbi_tiling {
vector<shape> shapes;
string name;
string comment;
ld cscale;
geometryinfo1& get_geometry();
eGeometryClass get_class() { return get_geometry().kind; }
@ -190,6 +192,7 @@ EX void load(const string& fname) {
c.shapes.clear();
c.name = unnamed;
c.comment = "";
c.cscale = 1;
exp_parser ep;
ep.s = s;
ld angleunit = 1, distunit = 1, angleofs = 0;
@ -271,6 +274,10 @@ EX void load(const string& fname) {
affine_limit = ep.iparse();
ep.force_eat(")");
}
else if(ep.eat("cscale(")) {
c.cscale = ep.rparse();
ep.force_eat(")");
}
else if(ep.eat("conway(\"")) {
string s = "";
while(true) {

View File

@ -597,6 +597,13 @@ void geometry_information::prepare_basics() {
rhexf = u->rhexf * fake::scale;
hexvdist = u->hexvdist * fake::scale;
}
if(arb::in()) {
auto& csc = arb::current.cscale;
scalefactor = csc;
hcrossf = crossf = orbsize = hcrossf7 * csc;
hexf = rhexf = hexvdist = csc * .5;
}
if(scale_used()) scalefactor *= vid.creature_scale;