Zeno Rogue
953e17722d
throw hr_exceptions not strings
2021-03-24 20:25:44 +01:00
Arthur O'Dwyer
1761b02b90
Rationalize some std::exception stuff.
2021-03-21 17:57:09 -04:00
Zeno Rogue
421ff4a94a
stretchable spherical spaces are now marked qSTRETCHABLE
2021-03-21 12:51:50 +01:00
Zeno Rogue
15adcdf191
missing ()
2021-03-12 23:00:18 +01:00
Zeno Rogue
5f86ed6b4b
fixed more fallthroughs, added exception hr_wrong_geometry
2021-03-12 22:59:24 +01:00
Zeno Rogue
6655ca1bc8
CLI option -nilh
2021-02-01 11:21:38 +01:00
Zeno Rogue
0de8ce9a10
initial implementation of VR
2020-11-22 17:58:40 +01:00
Zeno Rogue
35a502ae9a
the rotation fix did not work in SL2
2020-11-14 15:04:52 +01:00
Zeno Rogue
1ad581b9a8
hybrid:: in PURE, one type is sufficient -- important in GLES
2020-11-14 14:18:08 +01:00
Arthur O'Dwyer
d163a01b8a
Remove USE_UNORDERED_MAP because it has bit-rotted.
...
Trying to compile with `-DUSE_UNORDERED_MAP` produces lots of compiler errors
like these, because of missing `std::hash` specializations.
Also, `#define unordered_map map` is just evil!
```
./nonisotropic.cpp:875:36: note: in instantiation of template class 'std::__1::unordered_map<hr::nilv::mvec, hr::heptagon *,
std::__1::hash<hr::nilv::mvec>, std::__1::equal_to<hr::nilv::mvec>, std::__1::allocator<std::__1::pair<const hr::nilv::mvec, hr::heptagon
*> > >' requested here
unordered_map<mvec, heptagon*> at;
^
./nonisotropic.cpp:239:58: note: in instantiation of template class 'std::__1::unordered_map<std::__1::pair<hr::heptagon *, hr::heptagon *>,
hr::heptagon *, std::__1::hash<std::__1::pair<hr::heptagon *, hr::heptagon *> >, std::__1::equal_to<std::__1::pair<hr::heptagon *,
hr::heptagon *> >, std::__1::allocator<std::__1::pair<const std::__1::pair<hr::heptagon *, hr::heptagon *>, hr::heptagon *> > >'
requested here
unordered_map<pair<heptagon*, heptagon*>, heptagon*> at;
^
./nonisotropic.cpp:457:49: error: no matching member function for call to 'iadj'
while(h1->distance < h2->distance) back = iadj(h2, down) * back, h2 = h2->cmove(down);
^~~~
cell.cpp:42:15: note: candidate function not viable: no known conversion from 'hr::sn::hrmap_solnih' to 'hr::hrmap' for object argument
transmatrix iadj(heptagon *h, int d) {
^
cell.cpp:41:22: note: candidate function not viable: no known conversion from 'hr::sn::hrmap_solnih' to 'hr::hrmap' for object argument
struct transmatrix iadj(cell *c, int i) { cell *c1 = c->cmove(i); return adj(c1, c->c.spin(i)); }
^
```
2020-10-19 13:15:29 -04:00
Zeno Rogue
d64c5e338c
extra guards
2020-10-15 16:33:52 +02:00
Zeno Rogue
34dc8fcc6e
various fixes related to product spaces, especially product+inverse
2020-10-06 21:11:27 +02:00
Zeno Rogue
fdcba734c9
fixed direct_exp in S2xE
2020-09-21 12:03:32 +02:00
Zeno Rogue
e26f8f5a5b
optimized inverses
2020-09-16 23:49:17 +02:00
Zeno Rogue
6c99b70f16
fixed not reseting mstretch correctly
2020-08-23 00:11:19 +02:00
Zeno Rogue
b5924ccc5c
mstretch now works in rot spaces including SL2
2020-08-23 00:10:59 +02:00
Zeno Rogue
0822625cf8
fixed a NAN in rots::formula_exp
2020-08-10 20:20:55 +02:00
Zeno Rogue
0926b98c83
fixed raycaster in twisted geometries; weirdly twisted spherical geometry
2020-08-08 16:08:51 +02:00
Zeno Rogue
a7ac7b0894
added a comment to qtm that it is the inverse
2020-08-05 01:18:25 +02:00
Zeno Rogue
3505f17460
redone modecode
2020-08-02 12:55:37 +02:00
Zeno Rogue
c25e120c13
fixed a freeze in Berger sphere primitive
2020-07-28 22:06:14 +02:00
Zeno Rogue
18c96d4e62
fixed a bug in rotspace raycasting
2020-07-28 22:06:14 +02:00
Zeno Rogue
c99650cae4
rotspace:: in configure_period menu, updated description, and menu is left correctly
2020-07-28 22:06:14 +02:00
Zeno Rogue
475d16451a
rotspace:: shift: implemented using cellwalkers, works correctly in bounded spaces now
2020-07-28 22:06:14 +02:00
Zeno Rogue
33647a56c2
fixed distance computation in periodic product spaces (racing in H2xE no longer freezes)
2020-07-28 22:06:14 +02:00
Zeno Rogue
67595a4ed3
redone hrmap::draw() function to keep DRY
2020-07-28 22:06:14 +02:00
Zeno Rogue
42446f1925
fixed non-shader-based slr::get_inverse_exp
2020-07-28 22:06:14 +02:00
Zeno Rogue
82f32607e6
MAJOR CHANGE: replaced (transmatrix,band_shift) pair with shiftmatrix
2020-07-28 22:06:14 +02:00
Zeno Rogue
adc17dce1b
fixed slshader when xy==0
2020-07-25 03:14:11 +02:00
Zeno Rogue
4d9775080d
fixed crash in geometry selection
2020-07-25 03:13:54 +02:00
Zeno Rogue
94cac21716
primitive-based rendering of the Berger sphere (very poor)
2020-07-24 23:39:30 +02:00
Zeno Rogue
7d7fe85199
slr:: fixes in ~SL quotients: auto disc_quotient, underlying spaces drawn correctly, comment in period selector
2020-07-24 16:20:27 +02:00
Zeno Rogue
4c6500514e
nicer slshader
2020-07-24 11:35:32 +02:00
Zeno Rogue
351eda2b5d
generalized PSL to ~SL (discrepancies still appear)
2020-07-24 02:30:50 +02:00
Zeno Rogue
7e85f07458
primitive rendering now implemented for stretched H2xE; removed the old implementation of SL(2,R)
2020-07-22 00:19:13 +02:00
Zeno Rogue
2a0b0101fd
raycasting in 2D
2020-06-03 15:11:20 +02:00
Zeno Rogue
76dfee3e42
no_code set for hybrid and fake
2020-05-16 11:26:03 +02:00
Zeno Rogue
bf83959b4a
allow setting the resource dir; autoconf should move *.dat file to resource dir
2020-05-16 01:30:33 +02:00
Zeno Rogue
8b89374421
generalized SL2 raycaster
2020-05-15 18:32:14 +02:00
Zeno Rogue
3f20ba9d29
getCdata and getBits: prod -> hybri
2020-05-15 18:31:32 +02:00
Zeno Rogue
58a4583bb7
fixed Goldberg hybrid spaces
2020-05-15 17:40:42 +02:00
Zeno Rogue
aea3ac848b
hybrid:: in draw underlying, use a longer range in H2
2020-05-15 11:48:04 +02:00
Zeno Rogue
29c7faa264
stretch < -1 (seems not to be working correctly)
2020-05-09 18:33:37 +02:00
Zeno Rogue
c35705cc5c
fixed hybrid bitruncated ray: works after clear map
2020-05-09 18:32:16 +02:00
Zeno Rogue
fd9ea8793e
stretch:: renamed rots_twist to stretch, also implemented for slr
2020-05-09 10:41:15 +02:00
Zeno Rogue
ecb88d8501
qtm:: fixed
2020-05-09 02:35:15 +02:00
Zeno Rogue
83c0ade9d6
revert hyperbolic qtm
2020-05-09 00:57:59 +02:00
Zeno Rogue
54804bc08b
stretched spherical geometry
2020-05-08 21:18:47 +02:00
Zeno Rogue
02de6fa330
ray:: bitruncated product
2020-05-08 21:14:31 +02:00
Zeno Rogue
a6a0995e85
SOLV_ALL
2020-04-29 15:15:18 +02:00
Zeno Rogue
0472bf764f
moved all projection-related parameters to a special struct; another copy of that struct created for rug
2020-04-17 00:53:58 +02:00
Zeno Rogue
68ee90fcba
export get_acceleration
2020-04-12 20:34:39 +02:00
Zeno Rogue
ce441eb4bc
more accurate lazy for SolNih
2020-04-12 20:34:16 +02:00
Zeno Rogue
825a8aba82
nisot:: parallel_transport now also uses RK4
2020-04-11 15:28:22 +02:00
Zeno Rogue
e4a8b73819
nisot:: nicer precision setting
2020-04-11 15:08:24 +02:00
Zeno Rogue
c5d7479d00
nisot:: geodesic_step is now based on RK4 instead of midpoint
2020-04-11 15:01:01 +02:00
Zeno Rogue
b79eb4de1d
fixed cellcount
2020-04-06 09:26:59 +02:00
Zeno Rogue
1b9cdab98c
added missing CAP_COMMANDLINE guards
2020-04-06 09:13:20 +02:00
Zeno Rogue
c60714f145
slr::lift_matrix as a separate function
2020-04-01 11:26:58 +02:00
Zeno Rogue
f9580d29f6
fixed a bug in inverse_exp in Solv (caused wobbling)
2020-03-25 13:44:51 +01:00
Zeno Rogue
3caf700868
solv:: fixed another potential problem
2020-03-25 13:43:35 +01:00
Zeno Rogue
6eb3270900
qtm rewritten
2020-03-07 04:47:10 +01:00
Zeno Rogue
a241a3df61
nilv:: get_heptagon_at
2020-02-13 11:09:27 +01:00
Zeno Rogue
e133fffd5d
nilv:: nilwidth option
2020-02-13 11:09:18 +01:00
Zeno Rogue
1962900ce0
fixup nonisotropic.cpp
2020-01-16 17:13:57 +01:00
Zeno Rogue
dd0b4ec414
sn:: cleanup, also changed z_to_iz function from tanh to Poincare-based
2020-01-16 17:13:57 +01:00
Zeno Rogue
1b87a22874
adjusted sn shader
2020-01-16 17:13:57 +01:00
Zeno Rogue
549aa5bdb1
sn:: changed table presentation to Poincare
2020-01-16 17:13:47 +01:00
Zeno Rogue
ec6ffded34
older compilers
2019-12-27 13:11:31 +01:00
Zeno Rogue
769982040d
renamed solnihv:: to sn:: and solnih to sn::in()
2019-12-14 12:28:45 +01:00
Zeno Rogue
8cfc5a578f
renamed penrose.cpp to kite.cpp and 'penrose' to 'kite::in()'
2019-12-14 12:12:24 +01:00
Zeno Rogue
d5c8aebf16
renamed binary:: to bt:: and binarytiling to bt::in()
2019-12-14 12:05:01 +01:00
Zeno Rogue
f772f9b7fd
replaced 'archimedean' with 'arcm::in()'
2019-12-14 11:57:23 +01:00
Zeno Rogue
6b90261f2f
fixed celldistance in sl2
2019-12-06 12:14:03 +01:00
Zeno Rogue
63c4886722
replaced product drawing with the general routine
2019-12-06 12:13:09 +01:00
Zeno Rogue
ac9d18adfb
simplified the drawing algo for product
2019-12-06 11:47:26 +01:00
Zeno Rogue
99ab57086b
in_wallopt(): auto in racing
2019-12-06 11:45:19 +01:00
Zeno Rogue
4d5928fcc0
fixed a potential crash caused by reentrant hybrid::link
2019-11-30 19:45:43 +01:00
Zeno Rogue
56e9f95656
fixed freeze when enabling cspin/cmirror without enabling csteps
2019-11-30 19:32:43 +01:00
Zeno Rogue
c3b12328e0
renamed hrmap_rotation_space::relative_matrix to adj
2019-11-30 18:06:48 +01:00
Zeno Rogue
aef7e7ef37
fixed potential crash in get_umap
2019-11-30 18:06:48 +01:00
Zeno Rogue
46892a35c4
hybrid:: celldistance
2019-11-30 18:06:48 +01:00
Zeno Rogue
77c1e95701
product:: cspin and also cmirror
2019-11-30 18:06:48 +01:00
Zeno Rogue
1518d406b5
product:: cspin is now validated
2019-11-30 18:06:48 +01:00
Zeno Rogue
42a41835dc
product config dialog
2019-11-30 18:06:48 +01:00
Zeno Rogue
25bc0f56de
kth-turn product space (via CLI)
2019-11-30 18:06:48 +01:00
Zeno Rogue
937fdcd0e2
fixed a crash in kd2xE
2019-11-30 18:06:48 +01:00
Zeno Rogue
2b62b23888
product:: adj
2019-11-30 18:06:48 +01:00
Zeno Rogue
f3c97f9342
product:: works with Euclidean
2019-11-30 18:06:48 +01:00
Zeno Rogue
5add972bdd
product:: using in_h2xe() and in_s2xe() more consistently
2019-11-30 18:06:48 +01:00
Zeno Rogue
d63b14da5c
PIU now works in the underlying map -- underlying geometry only is too fragile
2019-11-30 18:06:47 +01:00
Zeno Rogue
7e8ede4bd6
relative_matrix and adj changed
2019-11-30 18:05:23 +01:00
Zeno Rogue
622b683e33
drawcell parameter is now cell, not cellwalker (need to check half-elliptic)
2019-11-30 18:04:54 +01:00
Zeno Rogue
222e4aa78b
mapeditor:: save geometry details
2019-11-23 21:08:47 +01:00
Zeno Rogue
bc2ce4f3dc
alternative honeycomb in Nil
2019-11-23 20:39:38 +01:00
Zeno Rogue
89225f4632
missing override attributes
2019-11-15 14:24:17 +01:00
Zeno Rogue
e075bc8c6d
formula pattern: extra parameters available, also shielded some parameters from crashes
2019-11-15 13:50:23 +01:00
Zeno Rogue
be5dc871b6
relative_matrix in Sol variants (other than cat)
2019-11-15 13:50:23 +01:00
Zeno Rogue
cd023e982e
szgmod used in relative_matrix in binary
2019-11-14 22:36:04 +01:00
Zeno Rogue
decd30164d
fixed product : spin_to/spin_from
2019-11-14 19:24:54 +01:00
Zeno Rogue
1f9501f746
fixed product spaces
2019-11-14 19:06:48 +01:00
Zeno Rogue
f96b497d2e
fixed product
2019-11-14 18:22:48 +01:00
Zeno Rogue
3eee611eca
nisot::local_perspective moved to display_data
2019-11-14 17:20:55 +01:00
Zeno Rogue
aeaaf7586a
refactored map functions: ddspin, iddspin, spacedist, spin_angle, virtualRebase[simple], adj
2019-11-14 16:51:50 +01:00
Zeno Rogue
109dd9823c
simplified ddspin/iddspin/cellgfxdist, replaced cellrelmatrix with adj/iadj
2019-11-14 00:27:59 +01:00
Zeno Rogue
ef9e2236ba
viewctr is no more... major reduction of redundancy/complexity
2019-11-14 00:26:50 +01:00
Zeno Rogue
74a139ca3e
Z period in product geometries
2019-11-13 20:48:38 +01:00
Zeno Rogue
cc9e03ddb8
product:: product projections
2019-11-09 13:14:42 +01:00
Zeno Rogue
6dd47c903d
nilv:: works with small periods
2019-11-08 15:42:31 +01:00
Zeno Rogue
add037d4e8
asonov:: changed direct checking of gArnoldCat to asonov::in()
2019-11-08 15:34:51 +01:00
Zeno Rogue
d199411248
new tiling: Arnold's cat
2019-11-08 15:01:03 +01:00
Zeno Rogue
83f8216fdc
nilv:: comment about periodicity
2019-11-08 14:57:56 +01:00
Zeno Rogue
73197c86c6
nilv:: qSMALL flag set for Nil quotients when appropriate
2019-11-08 14:57:44 +01:00
Zeno Rogue
b80caa11a6
moved zgmod to util
2019-11-08 14:56:54 +01:00
Zeno Rogue
3f18d91643
raycaster reset on hybrid::configure
2019-11-02 22:31:15 +01:00
Zeno Rogue
d4b2e0f88b
niltorus improvements
2019-11-02 22:19:32 +01:00
Zeno Rogue
8ba303f0f4
nil:: fixed zgmod
2019-11-02 22:18:28 +01:00
Zeno Rogue
e8de4d088c
fixed a possible crash in hybrid
2019-11-02 20:28:52 +01:00
Zeno Rogue
72b52e178f
underlying space view is now available in product space
2019-10-28 17:26:59 +01:00
Zeno Rogue
79cdbf7a53
correct cgi.wallstart in hybrid
2019-10-28 17:20:28 +01:00
Zeno Rogue
a9d3efe02c
solnihv:: set result[3] to zero, as otherwise it may become infinite
2019-10-26 18:24:45 +02:00
Zeno Rogue
72e6859dd5
Penrose staircase pattern in Nil, and diagonal pattern in Crystal
2019-10-25 12:47:03 +02:00
Zeno Rogue
85a08d205d
refactored celldraw
2019-10-25 12:44:41 +02:00
Zeno Rogue
fd8f363b8f
nil:: quotient spaces
2019-10-25 08:52:18 +02:00
Zeno Rogue
bb7e96a3d0
atan/atan2 functions in slshader
2019-10-21 22:43:19 +02:00
Zeno Rogue
adee8aa699
wall optimization option (-wallopt): do not draw things behind walls
2019-10-12 11:21:00 +02:00
Zeno Rogue
eb591f5dc8
stabilized file names for tabled inverse files
2019-10-05 18:53:51 +02:00
Zeno Rogue
a5579af826
disabled marking log(2) and log(3) as constexpr
2019-10-04 17:42:25 +02:00
Zeno Rogue
ec465b2afc
separate shader for stretched Sol, to avoid glitches
2019-10-04 13:03:50 +02:00
Zeno Rogue
67aceb80a5
fixup
2019-10-03 20:12:25 +02:00
Zeno Rogue
d69cb4e946
SolN manifold
2019-10-03 20:10:48 +02:00
Zeno Rogue
d6ab96f821
non-isotropic hyperbolic space
2019-10-01 05:03:46 +02:00
Zeno Rogue
a741446b7b
better rendering of Solv into the glitchy region
2019-09-26 13:23:44 +02:00
Zeno Rogue
a47be2f89f
fixed more warnings
2019-09-13 19:36:16 +02:00
Zeno Rogue
973d8cb451
fixed some warnings
2019-09-13 18:53:12 +02:00
Zeno Rogue
2a950369ba
solv:: CAP_SOLV
2019-09-13 17:45:31 +02:00
Zeno Rogue
334ffd644a
hyperweb compiles
2019-09-13 03:47:55 +02:00
Zeno Rogue
d1bf6fef5e
replaced product::product_sphere()
2019-09-12 22:50:16 +02:00
Zeno Rogue
d5a99e67e0
more intuitive tiling selection
2019-09-12 22:50:16 +02:00
Zeno Rogue
f8963a1c75
rots:: show the underlying geometry
2019-09-12 22:50:16 +02:00
Zeno Rogue
e600c0af0a
improved the rendering of S2xE rings
2019-09-12 22:50:16 +02:00
Zeno Rogue
7b76991dcd
hybrid::do_draw
2019-09-12 22:50:16 +02:00
Zeno Rogue
848eb8f48b
export everything: modules compiled separately
2019-09-12 22:50:16 +02:00
Zeno Rogue
82f24b4b6c
exporting necessary stuff all over (in progress)
2019-09-12 22:50:16 +02:00
Zeno Rogue
9647cbd47e
added #include hyper.h to all cpp files
2019-09-12 22:50:16 +02:00
Zeno Rogue
561c8e975c
reduced glitches in slr
2019-09-12 22:50:16 +02:00
Zeno Rogue
ecc6908807
fixes for older compilers
2019-09-12 22:50:16 +02:00
Zeno Rogue
443ba65730
rots:: fixed the confusion when switching tilings
2019-09-12 22:50:16 +02:00
Zeno Rogue
04a1c2242b
rots:: optimization of matrices
2019-09-12 22:50:15 +02:00
Zeno Rogue
b0b843fc22
rots:: fixed ordering of vertices on walls
2019-09-12 22:50:15 +02:00