HyperRogue  11.3d
game/visualization engine based on non-Euclidean geometry
Classes | Namespaces | Macros | Typedefs | Functions | Variables
rug.cpp File Reference

Hypersian Rug mode. More...

#include "hyper.h"

Classes

struct  hr::rug::edge
 
struct  hr::rug::dexp_data
 
struct  hr::rug::rugpoint
 
struct  hr::rug::triangle
 
struct  hr::rug::rug_exception
 
struct  hr::rug::normalizer
 

Namespaces

 hr
 

Macros

#define TEXTURESIZE   (texturesize)
 
#define HTEXTURESIZE   (texturesize/2)
 
#define USING_NATIVE_GEOMETRY   dynamicval<eGeometry> gw(geometry, gwhere == gElliptic ? gSphere : gwhere)
 
#define CAP_HOLDKEYS   (CAP_SDL && !ISWEB)
 

Typedefs

typedef array< ld, 4 > hr::rug::hyperpoint4
 
typedef long long hr::rug::bincode
 

Functions

EX bool hr::rug::in_crystal ()
 
EX bool hr::rug::subdivide_further ()
 
EX void hr::rug::subdivide ()
 
transmatrix hr::rug::orthonormalize (hyperpoint h1, hyperpoint h2)
 
hyperpoint hr::rug::azeq_to_hyperboloid (hyperpoint h)
 
hyperpoint hr::rug::hyperboloid_to_azeq (hyperpoint h)
 
void hr::rug::push_point (hyperpoint &h, int coord, ld val)
 
EX void hr::rug::push_all_points (int coord, ld val)
 
EX rugpoint * hr::rug::addRugpoint (hyperpoint h, double dist)
 
EX rugpoint * hr::rug::findRugpoint (hyperpoint h)
 
EX rugpoint * hr::rug::findOrAddRugpoint (hyperpoint h, double dist)
 
void hr::rug::addNewEdge (rugpoint *e1, rugpoint *e2, ld len=1)
 
EX bool hr::rug::edge_exists (rugpoint *e1, rugpoint *e2)
 
void hr::rug::addEdge (rugpoint *e1, rugpoint *e2, ld len=1)
 
void hr::rug::add_anticusp_edge (rugpoint *e1, rugpoint *e2, ld len=1)
 
EX void hr::rug::addTriangle (rugpoint *t1, rugpoint *t2, rugpoint *t3, ld len IS(1))
 
rugpoint * hr::rug::findhalf (rugpoint *r1, rugpoint *r2)
 
void hr::rug::addTriangle1 (rugpoint *t1, rugpoint *t2, rugpoint *t3)
 
bool hr::rug::psort (rugpoint *a, rugpoint *b)
 
EX void hr::rug::sort_rug_points ()
 
void hr::rug::calcLengths ()
 
EX void hr::rug::calcparam_rug ()
 
EX void hr::rug::buildTorusRug ()
 
EX void hr::rug::verify ()
 
void hr::rug::comp (cell *&minimum, cell *next)
 
EX void hr::rug::buildRug ()
 
EX void hr::rug::enqueue (rugpoint *m)
 
bool hr::rug::force_euclidean (rugpoint &m1, rugpoint &m2, double rd, bool is_anticusp=false, double d1=1, double d2=1)
 
bool hr::rug::force (rugpoint &m1, rugpoint &m2, double rd, bool is_anticusp=false, double d1=1, double d2=1)
 
EX void hr::rug::preset (rugpoint *m)
 
ld hr::rug::sse (const hyperpoint &h)
 
EX void hr::rug::optimize (rugpoint *m, bool do_preset)
 
EX ld hr::rug::slow_modeldist (const hyperpoint &h1, const hyperpoint &h2)
 
hyperpoint4 hr::rug::azeq_to_4 (const hyperpoint &h)
 
EX ld hr::rug::modeldist (const hyperpoint &h1, const hyperpoint &h2)
 
bincode hr::rug::acd_bin (ld x)
 
bincode hr::rug::get_bincode (hyperpoint h)
 
void hr::rug::generate_deltas (vector< bincode > &target, int dim, bincode offset)
 
int hr::rug::detect_cusp_at (rugpoint *p, rugpoint *q)
 
int hr::rug::detect_cusps ()
 
EX void hr::rug::addNewPoints ()
 
EX void hr::rug::physics ()
 
void hr::rug::getco (rugpoint *m, hyperpoint &h, int &spherepoints)
 
void hr::rug::drawTriangle (triangle &t)
 
EX void hr::rug::prepareTexture ()
 
EX void hr::rug::drawRugScene ()
 
EX void hr::rug::close_glbuf ()
 
EX void hr::rug::ensure_glbuf ()
 
EX void hr::rug::reopen ()
 
EX void hr::rug::init_model ()
 
EX void hr::rug::init ()
 
EX void hr::rug::clear_model ()
 
EX void hr::rug::close ()
 
EX void hr::rug::apply_rotation (const transmatrix &t)
 
EX void hr::rug::move_forward (ld distance)
 
EX bool hr::rug::handlekeys (int sym, int uni)
 
EX void hr::rug::finger_on (int coord, ld val)
 
EX void hr::rug::actDraw ()
 
void hr::rug::getco_pers (rugpoint *r, hyperpoint &p, int &spherepoints, bool &error)
 
EX hyperpoint hr::rug::gethyper (ld x, ld y)
 
EX string hr::rug::makehelp ()
 
EX string hr::rug::geometry_name (eGeometry g)
 
void hr::rug::change_texturesize ()
 
EX void hr::rug::show ()
 
EX void hr::rug::select ()
 
int hr::rug::rugArgs ()
 

Variables

EX bool hr::rug_failure = false
 
EX ld hr::rug::lwidth = 2
 
bool hr::rug::computed = false
 
EX vector< rugpoint * > hr::rug::points
 
EX vector< triangle > hr::rug::triangles
 
int hr::rug::when_enabled
 
EX bool hr::rug::fast_euclidean = true
 
EX bool hr::rug::good_shape
 
EX bool hr::rug::subdivide_first = false
 
EX bool hr::rug::spatial_rug = false
 
EX ld hr::rug::modelscale = 1
 
EX ld hr::rug::model_distance = 4
 
EX eGeometry hr::rug::gwhere = gEuclid
 
EX bool hr::rug::rugged = false
 
bool hr::rug::genrug = false
 
EX int hr::rug::vertex_limit = 20000
 
EX bool hr::rug::renderonce = false
 
EX int hr::rug::renderlate = 0
 
EX bool hr::rug::rendernogl = false
 
EX int hr::rug::texturesize = 1024
 
EX ld hr::rug::scale = 1
 
EX ld hr::rug::ruggo = 0
 
EX ld hr::rug::anticusp_factor = 1
 
EX ld hr::rug::anticusp_dist
 
EX ld hr::rug::err_zero = 1e-3
 
EX ld hr::rug::err_zero_current
 
EX ld hr::rug::current_total_error
 
EX int hr::rug::queueiter
 
EX int hr::rug::qvalid
 
EX int hr::rug::dt
 
EX rugpoint * hr::rug::finger_center
 
EX ld hr::rug::finger_range = .1
 
EX ld hr::rug::finger_force = 1
 
EX int hr::rug::rugdim
 
EX bool hr::rug::rug_perspective = ISANDROID
 
int hr::rug::hyprand
 
map< pair< rugpoint *, rugpoint * >, rugpoint * > hr::rug::halves
 
queue< rugpoint * > hr::rug::pqueue
 
vector< pair< ld, rugpoint * > > hr::rug::preset_points
 
int hr::rug::divides = 0
 
bool hr::rug::stop = false
 
const bincode hr::rug::sY = (1<<16)
 
const bincode hr::rug::sZ = sY * sY
 
const bincode hr::rug::sT = sY * sY * sY
 
bool hr::rug::use_precompute
 
int hr::rug::besti
 
vector< glhr::ct_vertex > hr::rug::ct_array
 
vector< glhr::ct_vertex > hr::rug::cp_array
 
EX struct renderbuffer * hr::rug::glbuf
 
double hr::rug::xview
 
double hr::rug::yview
 
EX bool hr::rug::no_fog
 
EX ld hr::rug::lowrug = 1e-2
 
EX ld hr::rug::hirug = 1e3
 
EX GLuint hr::rug::alternate_texture
 
EX bool hr::rug::invert_depth
 
EX transmatrix hr::rug::currentrot
 
EX bool hr::rug::display_warning = true
 
int hr::rug::lastticks
 
ld hr::rug::protractor = 0
 
transmatrix hr::rug::last_orientation
 
EX ld hr::rug::ruggospeed = 1
 
ld hr::rug::radar_distance = RADAR_INF
 
ld hr::rug::old_distance
 
auto hr::rug::rug_hook
 

Detailed Description

Hypersian Rug mode.

See also surface.cpp for constant curvature surfaces.

Variable Documentation

◆ rug_hook

auto hr::rug::rug_hook
Initial value:
=
addHook(hooks_args, 100, rugArgs)