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

surfaces of constant negative curvature More...

#include "hyper.h"

Classes

struct  hr::surface::dexp_origin
 

Namespaces

 hr
 

Macros

#define CAP_KUEN_MAP   0
 

Enumerations

enum  eShape {
  dsNone, dsTractricoid, dsDini, dsKuen,
  dsHyperlike, dsHyperboloid, dsHemisphere, dsCrystal
}
 

Functions

ld hr::surface::sech (ld d)
 
ld hr::surface::f (ld x)
 
int hr::surface::kuen_branch (ld v, ld u)
 
ld hr::surface::integral (ld x)
 
hyperpoint hr::surface::coord (hyperpoint h)
 
ld hr::surface::det (hyperpoint h1, hyperpoint h2, hyperpoint h3)
 
hyperpoint hr::surface::coord_derivative (hyperpoint h, int cc)
 
ld hr::surface::compute_curvature (hyperpoint at)
 
hyperpoint hr::surface::shape_origin ()
 
ld hr::surface::hyperlike_bound ()
 
bool hr::surface::flag_clamp_min (ld &coord, ld minv)
 
bool hr::surface::flag_clamp_max (ld &coord, ld maxv)
 
bool hr::surface::flag_clamp (ld &coord, ld minv, ld maxv)
 
bool hr::surface::flag_clamp_sym (ld &coord, ld v)
 
int hr::surface::surface_branch (hyperpoint p)
 
bool hr::surface::inbound (ld &x, ld &y)
 
bool hr::surface::is_inbound (hyperpoint h)
 
dexp_data hr::surface::dexp (hyperpoint p, hyperpoint t)
 
dexp_data hr::surface::map_to_surface (hyperpoint p, const dexp_origin &dor)
 
transmatrix hr::surface::create_M_matrix (hyperpoint zero, hyperpoint v1)
 
dexp_origin hr::surface::at_zero (hyperpoint zero, transmatrix start)
 
dexp_origin hr::surface::at_other (dexp_origin &o1, hyperpoint h)
 
void hr::surface::addTriangleV (rug::rugpoint *t1, rug::rugpoint *t2, rug::rugpoint *t3, ld len=1)
 
hyperpoint hr::surface::kuen_cross (ld v, ld u)
 
ld hr::surface::kuen_hypot (ld v, ld u)
 
void hr::surface::full_mesh ()
 
char hr::surface::rchar (int id)
 
void hr::surface::run_hyperlike ()
 
void hr::surface::run_kuen ()
 
template<class T >
void hr::surface::run_function (T f)
 
void hr::surface::run_other ()
 
EX void hr::surface::run_shape (eShape s)
 
void hr::surface::cancel_shape ()
 
EX void hr::surface::show_surfaces ()
 
int hr::surface::surface_args ()
 
void hr::surface::display_coverage ()
 

Variables

string hr::surface::shape_name []
 
EX eShape hr::surface::sh
 
hyperpoint hr::surface::unit_vector [3] = {hpxyz(1,0,0), hpxyz(0,1,0), hpxyz(0,0,1)}
 
ld hr::surface::last_int_of = 0
 
ld hr::surface::last_int = 0
 
EX ld hr::surface::dini_b = .15
 
EX ld hr::surface::hyper_b = 1
 
ld hr::surface::epsd = 1e-5
 
int hr::surface::precision = 100
 
int hr::surface::dexp_colors [16]
 
int hr::surface::dexp_comb_colors [16]
 
int hr::surface::coverage_style
 
vector< pair< hyperpoint, int > > hr::surface::coverage
 
cell * hr::surface::coverage_center
 
transmatrix hr::surface::coverage_matrix
 
auto hr::surface::surface_hook = addHook(hooks_args, 100, surface_args)
 
auto hr::surface::surface_hook2 = addHook(hooks_frame, 0, display_coverage)
 

Detailed Description

surfaces of constant negative curvature

See http://webmath2.unito.it/paginepersonali/sergio.console/CurveSuperfici/AG15.pdf for a nice reference

Variable Documentation

◆ shape_name

string hr::surface::shape_name[]
Initial value:
= { "hypersian rug", "tractricoid", "Dini's surface", "Kuen surface", "concave barrel",
"hyperboloid", "hemisphere", "crystal" }

◆ dexp_colors

int hr::surface::dexp_colors[16]
Initial value:
= {
0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00 }

◆ dexp_comb_colors

int hr::surface::dexp_comb_colors[16]
Initial value:
= {
0x000000, 0x0000FF, 0x00FF00, 0x00FFFF,
0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF,
0xFFD500,
0x123456, 0x123456, 0x123456, 0x123456, 0x123456, 0x123456, 0x123456
}