namespace hr { namespace bricks { void draw_ro(); extern void build(bool in_pair); #if !NILRIDER struct brick { euc::coord co; color_t col; int walls; hyperpoint location; hpcshape shRotWall[6]; }; #endif extern vector bricks; } } namespace nilrider { hpcshape shMini[6]; void create_minitriangle() { using namespace bricks; bricks::bricks.clear(); build(false); hyperpoint ctr = Hypc; for(auto& b: bricks::bricks) ctr += b.location; ctr /= ctr[3]; transmatrix B = gpushxto0(ctr); ld radius = 0; ld sca = .18; for(int f=0; f<6; f++) { cgi.bshape(shMini[f], PPR::WALL); shMini[f].flags |= POLY_TRIANGLES; for(auto& b: bricks::bricks) { transmatrix V = eupush(b.location); int which = b.walls; if(!((1< {90._deg+1e-2, M_PI+1e-2, TAU+1e-2, 7, 10}) for(hyperpoint h: {point31(0, 0, z), point31(1e-3, 0, z), point31(1e-6, 0, z), point31(0, 1e-6, z)}) { hyperpoint i = inverse_exp(shiftless(h)); println(hlog, i, " @ ", hypot_d(3, i)); } } }