C# 클래스 R3.Geometry.SimplexCalcs

파일 보기 프로젝트 열기: roice3/Honeycombs 1 사용 예제들

공개 메소드들

메소드 설명
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[]