Shapes

Global shapes

class geometries.hyp.shapes.ball.BallShape.BallShape(location, radius)

Shape of a hyperbolic ball

Construction

Arguments:
  • location (Isometry|Point|Vector) – data for the center of the ball - If the input in an Isometry, then the center is the image of the origin by this isometry. - If the input in a Point, then the center is that point. - If the input is a Vector, then the center is the image of this vector by the exponential map at the origin.

  • radius (number) – the radius od the ball

geometries.hyp.shapes.ball.BallShape.BallShape.BallShape

Construction

geometries.hyp.shapes.ball.BallShape.BallShape.center

type: Point

Center of the ball

geometries.hyp.shapes.ball.BallShape.BallShape.isBallShape

type: boolean

Says that the object inherits from Ball

geometries.hyp.shapes.ball.BallShape.BallShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

class geometries.hyp.shapes.cylinder.CylinderShape.CylinderShape(radius, isom)

Constructor

Arguments:
  • radius (number) – the radius of the cylinder

  • isom (Isometry) – the isometry defining the position of the cylinder. The cylinder is the image by isom of the cylinder going through the origin and directed by the vector (0,0,1)

geometries.hyp.shapes.cylinder.CylinderShape.CylinderShape.CylinderShape

Constructor

geometries.hyp.shapes.cylinder.CylinderShape.CylinderShape.vector

Return the vector (point + direction) orienting the geodesic Mainly used to pass data to the shader

class geometries.hyp.shapes.halfSpace.HalfSpaceShape.HalfSpaceShape(isom)

Half space in hyperbolic space

Constructor. The half space is the image by isom of the half space - going through the origin - whose normal vector is ez = [0,0,1,0]

Arguments:
  • isom (Isometry) – the isometry defining the position and orientation of the half space

geometries.hyp.shapes.halfSpace.HalfSpaceShape.HalfSpaceShape.HalfSpaceShape

Constructor. The half space is the image by isom of the half space - going through the origin - whose normal vector is ez = [0,0,1,0]

geometries.hyp.shapes.halfSpace.HalfSpaceShape.HalfSpaceShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.halfSpace.HalfSpaceShape.HalfSpaceShape.normal

Compute the normal vector to the half space, so that it can be passed to the shader. The normal vector consists of the underlying point and the direction.

class geometries.hyp.shapes.horoball.HoroballShape.HoroballShape(location, offset)

Shape of a hyperbolic horoball

Construction

Arguments:
  • location (Isometry|Vector3) – the location of the horoball. - if location is an Isometry, then the horoball is the image by this isometry of the horoball centered at the point [0,0,1,1] - if location is a Vector3, then the horoball is centered at [u_x, u_y,u_z, 1], where u = (u_x,u_y_u_z) is unit vector in the same direction. (seen as a point in the boundary at infinity of H3 in the hyperboloid model)

  • offset (number) – the radius od the ball

geometries.hyp.shapes.horoball.HoroballShape.HoroballShape.HoroballShape

Construction

geometries.hyp.shapes.horoball.HoroballShape.HoroballShape.center

Center of the ball (at infinity)

geometries.hyp.shapes.horoball.HoroballShape.HoroballShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.horoball.HoroballShape.HoroballShape.isHoroballShape

type: boolean

Says that the object inherits from HoroballShape

geometries.hyp.shapes.horoball.HoroballShape.HoroballShape.offset

type: number

Offset. The offset correspond to the image of the origin, by the SDF of the horoball. If the offset is positive, the origin is outside of the horoball

class geometries.hyp.shapes.semiLocalSlab.SemiLocalSlabShape.SemiLocalSlabShape(isom, thickness)

Slab around the horizontal hyperbolic plane {z = 0}

Only works with the augmentedCube teleportations set The object is a “local” object associated to a finite index subgroup of the cube group, say G, namely the kernel, say K, of the projection onto the dihedral group D6 implemented in augmentedCube

Constructor. The slab is the image by isom of the slab - going through the origin - whose normal vector is ez = [0,0,1,0] - with the given thickness

Arguments:
  • isom (Isometry) – the isometry defining the position and orientation of the half space

  • thickness (number) – the thickness of the slab

geometries.hyp.shapes.semiLocalSlab.SemiLocalSlabShape.SemiLocalSlabShape.SemiLocalSlabShape

Constructor. The slab is the image by isom of the slab - going through the origin - whose normal vector is ez = [0,0,1,0] - with the given thickness

geometries.hyp.shapes.semiLocalSlab.SemiLocalSlabShape.SemiLocalSlabShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.semiLocalSlab.SemiLocalSlabShape.SemiLocalSlabShape.normal

Compute the normal vector to the half space, so that it can be passed to the shader. The normal vector consists of the underlying point and the direction.

class geometries.hyp.shapes.slab.SlabShape.SlabShape(isom, thickness)

Slab around the horizontal hyperbolic plane {z = 0} Frankenstein Shape : - the SDF is the one of a global object, - but it is declared as a local object,

so that the ray-marching keep track of the cell boost

Constructor. The slab is the image by isom of the slab - going through the origin - whose normal vector is ez = [0,0,1,0] - with the given thickness

Arguments:
  • isom (Isometry) – the isometry defining the position and orientation of the half space

  • thickness (number) – the thickness of the slab

geometries.hyp.shapes.slab.SlabShape.SlabShape.SlabShape

Constructor. The slab is the image by isom of the slab - going through the origin - whose normal vector is ez = [0,0,1,0] - with the given thickness

geometries.hyp.shapes.slab.SlabShape.SlabShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.slab.SlabShape.SlabShape.normal

Compute the normal vector to the half space, so that it can be passed to the shader. The normal vector consists of the underlying point and the direction.

Local shapes

class geometries.hyp.shapes.localBall.LocalBallShape.LocalBallShape(location, radius)

Shape of a hyperbolic local ball

Construction

Arguments:
  • location (Isometry|Point|Vector) – data for the center of the ball - If the input in an Isometry, then the center is the image of the origin by this isometry. - If the input in a Point, then the center is that point. - If the input is a Vector, then the center is the image of this vector by the exponential map at the origin.

  • radius (number) – the radius od the ball

geometries.hyp.shapes.localBall.LocalBallShape.LocalBallShape.LocalBallShape

Construction

geometries.hyp.shapes.localBall.LocalBallShape.LocalBallShape.center

type: Point

Center of the ball

geometries.hyp.shapes.localBall.LocalBallShape.LocalBallShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.localBall.LocalBallShape.LocalBallShape.isLocalBallShape

type: boolean

Says that the object inherits from Ball

class geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape(radius, isom, height, smoothness)

Local cylinder in hyperbolic geometry

Constructor

Arguments:
  • radius (number|Vector2) – the radii of the cone (if a single value is passed, the top and bottom radii are the same)

  • isom (Isometry) – the isometry defining the position of the cylinder.

  • height (number) – height of the cylinder

  • smoothness (number) – smoothness of the edge (polynomial smooth max) The cylinder is the image by isom of the cylinder going through the origin and directed by the vector (0,0,1)

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.LocalCappedConeShape

Constructor

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.capBtm

type: Vector4

Coordinates of the normal vector at the bottom cap of the cylinder (before applying isom)

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.capTop

type: Vector4

Coordinates of the normal vector at the top cap of the cylinder (before applying isom)

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.direction

Return the vector (point + direction) orienting the geodesic Mainly used to pass data to the shader

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.testCapBtm

Coordinated of the normal vector on the bottom cap of the cylinder Used to compute the SDF

geometries.hyp.shapes.localCappedCone.LocalCappedConeShape.LocalCappedConeShape.testCapTop

Coordinated of the normal vector on the top cap of the cylinder Used to compute the SDF

class geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape(radius, isom, height, smoothness)

Local capped cylinder in hyperbolic geometry

Constructor

Arguments:
  • radius (number) – the radii of the cone (if a single value is passed, the top and bottom radii are the same)

  • isom (Isometry) – the isometry defining the position of the cylinder.

  • height (number) – height of the cylinder

  • smoothness (number) – smoothness of the edge (polynomial smooth max) The cylinder is the image by isom of the cylinder going through the origin and directed by the vector (0,0,1)

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.LocalCappedCylinderShape

Constructor

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.capBtm

type: Vector4

Coordinates of the normal vector at the bottom cap of the cylinder (before applying isom)

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.capTop

type: Vector4

Coordinates of the normal vector at the top cap of the cylinder (before applying isom)

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.direction

Return the vector (point + direction) orienting the geodesic Mainly used to pass data to the shader

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.testCapBtm

Coordinated of the normal vector on the bottom cap of the cylinder Used to compute the SDF

geometries.hyp.shapes.localCappedCylinder.LocalCappedCylinderShape.LocalCappedCylinderShape.testCapTop

Coordinated of the normal vector on the top cap of the cylinder Used to compute the SDF

class geometries.hyp.shapes.localCylinder.LocalCylinderShape.LocalCylinderShape(radius, isom)

Local cylinder in hyperbolic geometry

Constructor

Arguments:
  • radius (number) – the radius of the cylinder

  • isom (Isometry) – the isometry defining the position of the cylinder. The cylinder is the image by isom of the cylinder going through the origin and directed by the vector (0,0,1)

geometries.hyp.shapes.localCylinder.LocalCylinderShape.LocalCylinderShape.LocalCylinderShape

Constructor

geometries.hyp.shapes.localCylinder.LocalCylinderShape.LocalCylinderShape.direction

Return the vector (point + direction) orienting the geodesic Mainly used to pass data to the shader

class geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape(location, offset)

Shape of a hyperbolic local horoball The SDF is a directed SDF when the point is inside the horoball. Does not seem to make a huge difference, when rendering cusps as the complement of a horoball (assuming that the creeping is off !)

Construction

Arguments:
  • location (Isometry|Vector3) – the location of the horoball. - if location is an Isometry, then the horoball is the image by this isometry of the horoball centered at the point [0,0,1,1] - if location is a Vector3, then the horoball is centered at [u_x, u_y,u_z, 1], where u = (u_x,u_y_u_z) is unit vector in the same direction. (seen as a point in the boundary at infinity of H3 in the hyperboloid model)

  • offset (number) – the radius od the ball

geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape.LocalDirectedHoroballShape

Construction

geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape.center

Center of the ball (at infinity)

geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape.isLocalHoroballShape

type: boolean

Says that the object inherits from Ball

geometries.hyp.shapes.localDirectedHoroball.LocalDirectedHoroballShape.LocalDirectedHoroballShape.offset

type: number

Offset. The offset correspond to the image of the origin, by the SDF of the horoball. If the offset is positive, the origin is outside of the horoball

class geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape(location, offset)

Shape of a hyperbolic local horoball

Construction

Arguments:
  • location (Isometry|Vector3) – the location of the horoball. - if location is an Isometry, then the horoball is the image by this isometry of the horoball centered at the point [0,0,1,1] - if location is a Vector3, then the horoball is centered at [u_x, u_y,u_z, 1], where u = (u_x,u_y_u_z) is unit vector in the same direction. (seen as a point in the boundary at infinity of H3 in the hyperboloid model)

  • offset (number) – the radius od the ball

geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape.LocalHoroballShape

Construction

geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape.center

Center of the ball (at infinity)

geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape.isGlobal

type: boolean

Says whether the shape is global. True if global, false otherwise.

geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape.isLocalHoroballShape

type: boolean

Says that the object inherits from Ball

geometries.hyp.shapes.localHoroball.LocalHoroballShape.LocalHoroballShape.offset

type: number

Offset. The offset correspond to the image of the origin, by the SDF of the horoball. If the offset is positive, the origin is outside of the horoball

class geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape(radius, isom, height)

Local cone with a half ball at the bottom

Constructor The origin is at the center of the half ball (i.e. at the base of the cone)

Arguments:
  • radius (number) – the radius of the base of the cone

  • isom (Isometry) – the isometry defining the position of the cylinder.

  • height (number) – height of the cylinder The cylinder is the image by isom of the cylinder going through the origin and directed by the vector (0,0,1)

geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape.LocalRoundConeShape

Constructor The origin is at the center of the half ball (i.e. at the base of the cone)

geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape.direction

Return the vector (point + direction) orienting the geodesic Mainly used to pass data to the shader

geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape.nApex

type: Vector4

Coordinates of the “normal” vector at the apex of the cone (before applying isom)

geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape.testApex

Coordinated of the normal vector on the top cap of the cylinder Used to compute the SDF

geometries.hyp.shapes.localRoundCone.LocalRoundConeShape.LocalRoundConeShape.testCapBtm

Coordinated of the normal vector on the bottom cap of the cylinder Used to compute the SDF