C# Class R3.Geometry.H3Models.Ball

ファイルを表示 Open project: roice3/Honeycombs

Public Methods

Method Description
ApplyMobius ( Mobius m, Vector3D v ) : Vector3D

Helper to apply a Mobius to the ball model. Vector is taken to UHS, mobius applied, then taken back.

ClosestToOrigin ( Circle3D c ) : Vector3D

Given a geodesic circle, find the point closest to the origin.

ClosestToOrigin ( Sphere s ) : Vector3D

Given a geodesic sphere, find the point closest to the origin.

DupinCyclideSphere ( Vector3D vNonEuclidean, double radiusEuclideanOrigin, Geometry g, Vector3D &centerEuclidean, double &radiusEuclidean ) : void

Helper that works in all geometries. center: http://www.wolframalpha.com/input/?i=%28+%28+%28+r+%2B+p+%29+%2F+%28+1+-+r*p+%29+%29+%2B+%28+%28+-r+%2B+p+%29+%2F+%28+1+%2B+r*p+%29+%29++%29+%2F+2 radius: http://www.wolframalpha.com/input/?i=%28+%28+%28+r+%2B+p+%29+%2F+%28+1+-+r*p+%29+%29+-+%28+%28+-r+%2B+p+%29+%2F+%28+1+%2B+r*p+%29+%29++%29+%2F+2

DupinCyclideSphere ( Vector3D v, double radiusEuclideanOrigin, Vector3D &centerEuclidean, double &radiusEuclidean ) : void

Calculates the euclidean center/radius of a standard sphere transformed to the nonEuclidean point v. The standard sphere is the sphere at the origin having euclidean radius 'radiusEuclideanOrigin'.

Geodesic ( Vector3D v1, Vector3D v2, Vector3D &center, double &radius, Vector3D &normal, double &angleTot ) : void
GeodesicIdealEndpoints ( Vector3D v1, Vector3D v2, Vector3D &b1, Vector3D &b2 ) : void

Given two points (in the ball model), find the endpoints of the associated geodesic that lie on the boundary.

GeodesicPoints ( Vector3D v1, Vector3D v2, double quality = 1.0 ) : Vector3D[]

Calculate points along a geodesic segment from v1 to v2. quality can vary from 0 to 1.

GeodesicPoints ( Vector3D v1, Vector3D v2, int div ) : Vector3D[]

Calculate points along a geodesic segment from v1 to v2.

HDist ( Vector3D u, Vector3D v ) : double

Returns the hyperbolic distance between two points.

IdealCircle ( Sphere s ) : Circle3D

Given a geodesic sphere, returns it's intersection with the boundary plane.

IdealPoints ( Sphere s, Vector3D &s1, Vector3D &s2, Vector3D &s3 ) : void

Given a geodesic sphere, calculates 3 ideal points of the sphere. NOTE: s1 and s2 will be antipodal on the ideal circle.

LODThin ( Vector3D e1, Vector3D e2, int &div ) : void
LOD_Finite ( Vector3D e1, Vector3D e2, int &div1, int &div2, H3 settings ) : void

LOD

LOD_Ideal ( Vector3D e1, Vector3D e2, int &div1, int &div2, H3 settings ) : void
Midpoint ( H3 edge ) : Vector3D

Calculate the hyperbolic midpoint of an edge. Only works for non-ideal edges at the moment.

OrthogonalCircle ( Circle3D c, Vector3D v1, Vector3D v2 ) : Circle3D

Given 2 points on the boundary of a circle, calculate the orthogonal circle.

OrthogonalCircle ( Vector3D v1, Vector3D v2 ) : Circle3D
OrthogonalCircle ( Vector3D v1, Vector3D v2, Vector3D &center, double &radius ) : void

Given 2 points on the surface of the ball, calculate the center and radius of the orthogonal circle.

OrthogonalCircleInterior ( Vector3D v1, Vector3D v2, Circle3D &circle ) : void

Given 2 points in the interior of the ball, calculate the center and radius of the orthogonal circle. One point may optionally be on the boundary, but one shoudl be in the interior. If both points are on the boundary, we'll fall back on our other method.

OrthogonalSphere ( Vector3D b1, Vector3D b2, Vector3D b3 ) : Sphere

Find the sphere defined by 3 points on the unit sphere, and orthogonal to the unit sphere. Returns null if points are not on the unit sphere.

OrthogonalSphereInterior ( Vector3D v ) : Sphere

Find an orthogonal sphere defined by a single interior point. This point is the unique point on the sphere that is furthest from the ball boundary. (equivalently, closest to the origin)

OrthogonalSphereInterior ( Vector3D c1, Vector3D c2, Vector3D c3 ) : Sphere

Find the sphere defined by 3 points in the interior of the unit sphere, and orthogonal to the unit sphere.

SizeFunc ( Vector3D v, double angularThickness ) : double

A size function for the ball model. Returns a radius.

Private Methods

Method Description
ApplyMinRadiusForPrinting ( double &radius ) : void
ApplyMinRadiusForWiki ( double &radius ) : void
HalfTo ( Vector3D v ) : Vector3D

Method Details

ApplyMobius() public static method

Helper to apply a Mobius to the ball model. Vector is taken to UHS, mobius applied, then taken back.
public static ApplyMobius ( Mobius m, Vector3D v ) : Vector3D
m R3.Math.Mobius
v Vector3D
return Vector3D

ClosestToOrigin() public static method

Given a geodesic circle, find the point closest to the origin.
public static ClosestToOrigin ( Circle3D c ) : Vector3D
c Circle3D
return Vector3D

ClosestToOrigin() public static method

Given a geodesic sphere, find the point closest to the origin.
public static ClosestToOrigin ( Sphere s ) : Vector3D
s Sphere
return Vector3D

DupinCyclideSphere() public static method

Helper that works in all geometries. center: http://www.wolframalpha.com/input/?i=%28+%28+%28+r+%2B+p+%29+%2F+%28+1+-+r*p+%29+%29+%2B+%28+%28+-r+%2B+p+%29+%2F+%28+1+%2B+r*p+%29+%29++%29+%2F+2 radius: http://www.wolframalpha.com/input/?i=%28+%28+%28+r+%2B+p+%29+%2F+%28+1+-+r*p+%29+%29+-+%28+%28+-r+%2B+p+%29+%2F+%28+1+%2B+r*p+%29+%29++%29+%2F+2
public static DupinCyclideSphere ( Vector3D vNonEuclidean, double radiusEuclideanOrigin, Geometry g, Vector3D &centerEuclidean, double &radiusEuclidean ) : void
vNonEuclidean Vector3D
radiusEuclideanOrigin double
g Geometry
centerEuclidean Vector3D
radiusEuclidean double
return void

DupinCyclideSphere() public static method

Calculates the euclidean center/radius of a standard sphere transformed to the nonEuclidean point v. The standard sphere is the sphere at the origin having euclidean radius 'radiusEuclideanOrigin'.
public static DupinCyclideSphere ( Vector3D v, double radiusEuclideanOrigin, Vector3D &centerEuclidean, double &radiusEuclidean ) : void
v Vector3D
radiusEuclideanOrigin double
centerEuclidean Vector3D
radiusEuclidean double
return void

Geodesic() public static method

public static Geodesic ( Vector3D v1, Vector3D v2, Vector3D &center, double &radius, Vector3D &normal, double &angleTot ) : void
v1 Vector3D
v2 Vector3D
center Vector3D
radius double
normal Vector3D
angleTot double
return void

GeodesicIdealEndpoints() public static method

Given two points (in the ball model), find the endpoints of the associated geodesic that lie on the boundary.
public static GeodesicIdealEndpoints ( Vector3D v1, Vector3D v2, Vector3D &b1, Vector3D &b2 ) : void
v1 Vector3D
v2 Vector3D
b1 Vector3D
b2 Vector3D
return void

GeodesicPoints() public static method

Calculate points along a geodesic segment from v1 to v2. quality can vary from 0 to 1.
public static GeodesicPoints ( Vector3D v1, Vector3D v2, double quality = 1.0 ) : Vector3D[]
v1 Vector3D
v2 Vector3D
quality double
return Vector3D[]

GeodesicPoints() public static method

Calculate points along a geodesic segment from v1 to v2.
public static GeodesicPoints ( Vector3D v1, Vector3D v2, int div ) : Vector3D[]
v1 Vector3D
v2 Vector3D
div int
return Vector3D[]

HDist() public static method

Returns the hyperbolic distance between two points.
public static HDist ( Vector3D u, Vector3D v ) : double
u Vector3D
v Vector3D
return double

IdealCircle() public static method

Given a geodesic sphere, returns it's intersection with the boundary plane.
public static IdealCircle ( Sphere s ) : Circle3D
s Sphere
return Circle3D

IdealPoints() public static method

Given a geodesic sphere, calculates 3 ideal points of the sphere. NOTE: s1 and s2 will be antipodal on the ideal circle.
public static IdealPoints ( Sphere s, Vector3D &s1, Vector3D &s2, Vector3D &s3 ) : void
s Sphere
s1 Vector3D
s2 Vector3D
s3 Vector3D
return void

LODThin() public static method

public static LODThin ( Vector3D e1, Vector3D e2, int &div ) : void
e1 Vector3D
e2 Vector3D
div int
return void

LOD_Finite() public static method

LOD
public static LOD_Finite ( Vector3D e1, Vector3D e2, int &div1, int &div2, H3 settings ) : void
e1 Vector3D
e2 Vector3D
div1 int
div2 int
settings H3
return void

LOD_Ideal() public static method

public static LOD_Ideal ( Vector3D e1, Vector3D e2, int &div1, int &div2, H3 settings ) : void
e1 Vector3D
e2 Vector3D
div1 int
div2 int
settings H3
return void

Midpoint() public static method

Calculate the hyperbolic midpoint of an edge. Only works for non-ideal edges at the moment.
public static Midpoint ( H3 edge ) : Vector3D
edge H3
return Vector3D

OrthogonalCircle() public static method

Given 2 points on the boundary of a circle, calculate the orthogonal circle.
public static OrthogonalCircle ( Circle3D c, Vector3D v1, Vector3D v2 ) : Circle3D
c Circle3D
v1 Vector3D
v2 Vector3D
return Circle3D

OrthogonalCircle() public static method

public static OrthogonalCircle ( Vector3D v1, Vector3D v2 ) : Circle3D
v1 Vector3D
v2 Vector3D
return Circle3D

OrthogonalCircle() public static method

Given 2 points on the surface of the ball, calculate the center and radius of the orthogonal circle.
public static OrthogonalCircle ( Vector3D v1, Vector3D v2, Vector3D &center, double &radius ) : void
v1 Vector3D
v2 Vector3D
center Vector3D
radius double
return void

OrthogonalCircleInterior() public static method

Given 2 points in the interior of the ball, calculate the center and radius of the orthogonal circle. One point may optionally be on the boundary, but one shoudl be in the interior. If both points are on the boundary, we'll fall back on our other method.
public static OrthogonalCircleInterior ( Vector3D v1, Vector3D v2, Circle3D &circle ) : void
v1 Vector3D
v2 Vector3D
circle Circle3D
return void

OrthogonalSphere() public static method

Find the sphere defined by 3 points on the unit sphere, and orthogonal to the unit sphere. Returns null if points are not on the unit sphere.
public static OrthogonalSphere ( Vector3D b1, Vector3D b2, Vector3D b3 ) : Sphere
b1 Vector3D
b2 Vector3D
b3 Vector3D
return Sphere

OrthogonalSphereInterior() public static method

Find an orthogonal sphere defined by a single interior point. This point is the unique point on the sphere that is furthest from the ball boundary. (equivalently, closest to the origin)
public static OrthogonalSphereInterior ( Vector3D v ) : Sphere
v Vector3D
return Sphere

OrthogonalSphereInterior() public static method

Find the sphere defined by 3 points in the interior of the unit sphere, and orthogonal to the unit sphere.
public static OrthogonalSphereInterior ( Vector3D c1, Vector3D c2, Vector3D c3 ) : Sphere
c1 Vector3D
c2 Vector3D
c3 Vector3D
return Sphere

SizeFunc() public static method

A size function for the ball model. Returns a radius.
public static SizeFunc ( Vector3D v, double angularThickness ) : double
v Vector3D
angularThickness double
return double