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