C# Класс R3.Geometry.SimplexCalcs

Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
CalcEScale ( ) : void
DualEdgeBall ( Sphere facets ) : H3.Cell.Edge
FCOrientMobius ( int p, int q ) : Mobius
GoursatTetrahedron ( double A, double B, double C, double A_, double B_, double C_ ) : Vector3D[]

This calculates the 4 vertices of a general (but finite) Goursat Tetrahedron. Result is in the ball model. The method comes from the dissertation "Hyperbolic polyhedra: volume and scissors congruence", by Yana Zilberberg Mohanty, section 2.4, steps 1-5. A,B,C are the three dihedral angles surrounding a vertex. A_,B_,C_ are the three oppoite dihedral angles.

GramSchmidt ( Matrix4D input, Matrix4D innerProductValues ) : Matrix4D
HoneycombEdgeBall ( Sphere facets, Vector3D vertex ) : H3.Cell.Edge
HoneycombEdgeBall ( int p, int q, int r ) : H3.Cell.Edge
HyperboloidToBall ( VectorND hyperboloidPoint ) : Vector3D
Mirrors ( Vector3D verts ) : R3.Geometry.Sphere[]

Given the 4 verts of a tetrahedron (must lie within ball), Calculate the faces of the tetrahedron. Input and Output in ball model.

Mirrors ( int p, int q, int r, Vector3D &cellCenter, bool moveToBall = true, double scaling = -1 ) : R3.Geometry.Sphere[]
Mirrors ( int p, int q, int r, bool moveToBall = true, double scaling = -1 ) : R3.Geometry.Sphere[]
MirrorsEuclidean ( ) : R3.Geometry.Sphere[]
MirrorsSpherical ( int p, int q, int r ) : R3.Geometry.Sphere[]

Mirrors for Spherical geometry, in the ball model.

PrepForFacetCentering ( int p, int q, Sphere spheres, Vector3D &cellCenter ) : void

Inputs must be in UHS!

ReverseRows ( Matrix4D m ) : Matrix4D
SimplexEdgesBall ( int p, int q, int r ) : H3.Cell.Edge[]

Returns the 6 simplex edges in the Ball model.

SimplexEdgesUHS ( int p, int q, int r ) : H3.Cell.Edge[]

Returns the 6 simplex edges in the UHS model.

ToPovRay ( Sphere mirrors ) : void
VertexPointBall ( int p, int q, int r ) : Vector3D

Calculates the point of our simplex that is at a vertex.

VertexSpherical ( int p, int q, int r ) : Vector3D
VertsBall ( int p, int q, int r ) : Vector3D[]

Return the 4 simplex vertices in the ball model.

VertsEuclidean ( ) : Vector3D[]

Приватные методы

Метод Описание
BaseTileSegments ( int p, int q ) : Segment[]
CellCenterBall ( int p, int q, int r ) : Vector3D

Calculates the point of our simplex that is at the middle of an edge.

FaceCenterBall ( int p, int q, int r ) : Vector3D

Calculates the point of our simplex that is at the middle of an edge.

Finite ( int t ) : bool
FiniteOrInfinite ( int t ) : bool
HoneycombEdgeUHS ( int p, int q, int r ) : Circle3D
Infinite ( int t ) : bool
InteriorMirrors ( int p, int q ) : R3.Geometry.Sphere[]

Calculates the 3 mirrors connected to the cell center. This works in all geometries and returns results in the UHS model (or the appropriate analogue).

MidEdgePointBall ( int p, int q, int r ) : Vector3D

Calculates the point of our simplex that is at the middle of an edge.

MinkowskiInnerProduct ( VectorND v1, VectorND v2 ) : double
MinkowskiNormalize ( VectorND v ) : VectorND
RotateSphere ( Sphere s, double rotation ) : void

Helper to rotate a sphere about the z axis.

TilePoints ( int p, int q, Vector3D &p1, Vector3D &p2, Vector3D &p3, Segment &seg ) : void

Helper to construct some points we need for calculating simplex facets for a {p,q,r} honeycomb.

Описание методов

CalcEScale() публичный статический Метод

public static CalcEScale ( ) : void
Результат void

DualEdgeBall() публичный статический Метод

public static DualEdgeBall ( Sphere facets ) : H3.Cell.Edge
facets Sphere
Результат H3.Cell.Edge

FCOrientMobius() публичный статический Метод

public static FCOrientMobius ( int p, int q ) : Mobius
p int
q int
Результат R3.Math.Mobius

GoursatTetrahedron() публичный статический Метод

This calculates the 4 vertices of a general (but finite) Goursat Tetrahedron. Result is in the ball model. The method comes from the dissertation "Hyperbolic polyhedra: volume and scissors congruence", by Yana Zilberberg Mohanty, section 2.4, steps 1-5. A,B,C are the three dihedral angles surrounding a vertex. A_,B_,C_ are the three oppoite dihedral angles.
public static GoursatTetrahedron ( double A, double B, double C, double A_, double B_, double C_ ) : Vector3D[]
A double
B double
C double
A_ double
B_ double
C_ double
Результат Vector3D[]

GramSchmidt() публичный статический Метод

public static GramSchmidt ( Matrix4D input, Matrix4D innerProductValues ) : Matrix4D
input R3.Math.Matrix4D
innerProductValues R3.Math.Matrix4D
Результат R3.Math.Matrix4D

HoneycombEdgeBall() публичный статический Метод

public static HoneycombEdgeBall ( Sphere facets, Vector3D vertex ) : H3.Cell.Edge
facets Sphere
vertex Vector3D
Результат H3.Cell.Edge

HoneycombEdgeBall() публичный статический Метод

public static HoneycombEdgeBall ( int p, int q, int r ) : H3.Cell.Edge
p int
q int
r int
Результат H3.Cell.Edge

HyperboloidToBall() публичный статический Метод

public static HyperboloidToBall ( VectorND hyperboloidPoint ) : Vector3D
hyperboloidPoint VectorND
Результат Vector3D

Mirrors() публичный статический Метод

Given the 4 verts of a tetrahedron (must lie within ball), Calculate the faces of the tetrahedron. Input and Output in ball model.
public static Mirrors ( Vector3D verts ) : R3.Geometry.Sphere[]
verts Vector3D
Результат R3.Geometry.Sphere[]

Mirrors() публичный статический Метод

public static Mirrors ( int p, int q, int r, Vector3D &cellCenter, bool moveToBall = true, double scaling = -1 ) : R3.Geometry.Sphere[]
p int
q int
r int
cellCenter Vector3D
moveToBall bool
scaling double
Результат R3.Geometry.Sphere[]

Mirrors() публичный статический Метод

public static Mirrors ( int p, int q, int r, bool moveToBall = true, double scaling = -1 ) : R3.Geometry.Sphere[]
p int
q int
r int
moveToBall bool
scaling double
Результат R3.Geometry.Sphere[]

MirrorsEuclidean() публичный статический Метод

public static MirrorsEuclidean ( ) : R3.Geometry.Sphere[]
Результат R3.Geometry.Sphere[]

MirrorsSpherical() публичный статический Метод

Mirrors for Spherical geometry, in the ball model.
public static MirrorsSpherical ( int p, int q, int r ) : R3.Geometry.Sphere[]
p int
q int
r int
Результат R3.Geometry.Sphere[]

PrepForFacetCentering() публичный статический Метод

Inputs must be in UHS!
public static PrepForFacetCentering ( int p, int q, Sphere spheres, Vector3D &cellCenter ) : void
p int
q int
spheres Sphere
cellCenter Vector3D
Результат void

ReverseRows() публичный статический Метод

public static ReverseRows ( Matrix4D m ) : Matrix4D
m R3.Math.Matrix4D
Результат R3.Math.Matrix4D

SimplexEdgesBall() публичный статический Метод

Returns the 6 simplex edges in the Ball model.
public static SimplexEdgesBall ( int p, int q, int r ) : H3.Cell.Edge[]
p int
q int
r int
Результат H3.Cell.Edge[]

SimplexEdgesUHS() публичный статический Метод

Returns the 6 simplex edges in the UHS model.
public static SimplexEdgesUHS ( int p, int q, int r ) : H3.Cell.Edge[]
p int
q int
r int
Результат H3.Cell.Edge[]

ToPovRay() публичный статический Метод

public static ToPovRay ( Sphere mirrors ) : void
mirrors Sphere
Результат void

VertexPointBall() публичный статический Метод

Calculates the point of our simplex that is at a vertex.
public static VertexPointBall ( int p, int q, int r ) : Vector3D
p int
q int
r int
Результат Vector3D

VertexSpherical() публичный статический Метод

public static VertexSpherical ( int p, int q, int r ) : Vector3D
p int
q int
r int
Результат Vector3D

VertsBall() публичный статический Метод

Return the 4 simplex vertices in the ball model.
public static VertsBall ( int p, int q, int r ) : Vector3D[]
p int
q int
r int
Результат Vector3D[]

VertsEuclidean() публичный статический Метод

public static VertsEuclidean ( ) : Vector3D[]
Результат Vector3D[]