C# 클래스 R3.Geometry.H3Models.Ball

파일 보기 프로젝트 열기: roice3/Honeycombs

공개 메소드들

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

비공개 메소드들

메소드 설명
ApplyMinRadiusForPrinting ( double &radius ) : void
ApplyMinRadiusForWiki ( double &radius ) : void
HalfTo ( Vector3D v ) : Vector3D

메소드 상세

ApplyMobius() 공개 정적인 메소드

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
리턴 Vector3D

ClosestToOrigin() 공개 정적인 메소드

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

ClosestToOrigin() 공개 정적인 메소드

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

DupinCyclideSphere() 공개 정적인 메소드

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
리턴 void

DupinCyclideSphere() 공개 정적인 메소드

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
리턴 void

Geodesic() 공개 정적인 메소드

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
리턴 void

GeodesicIdealEndpoints() 공개 정적인 메소드

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
리턴 void

GeodesicPoints() 공개 정적인 메소드

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
리턴 Vector3D[]

GeodesicPoints() 공개 정적인 메소드

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
리턴 Vector3D[]

HDist() 공개 정적인 메소드

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

IdealCircle() 공개 정적인 메소드

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

IdealPoints() 공개 정적인 메소드

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
리턴 void

LODThin() 공개 정적인 메소드

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

LOD_Finite() 공개 정적인 메소드

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
리턴 void

LOD_Ideal() 공개 정적인 메소드

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
리턴 void

Midpoint() 공개 정적인 메소드

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

OrthogonalCircle() 공개 정적인 메소드

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
리턴 Circle3D

OrthogonalCircle() 공개 정적인 메소드

public static OrthogonalCircle ( Vector3D v1, Vector3D v2 ) : Circle3D
v1 Vector3D
v2 Vector3D
리턴 Circle3D

OrthogonalCircle() 공개 정적인 메소드

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
리턴 void

OrthogonalCircleInterior() 공개 정적인 메소드

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
리턴 void

OrthogonalSphere() 공개 정적인 메소드

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
리턴 Sphere

OrthogonalSphereInterior() 공개 정적인 메소드

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
리턴 Sphere

OrthogonalSphereInterior() 공개 정적인 메소드

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
리턴 Sphere

SizeFunc() 공개 정적인 메소드

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