C# Класс R3.Geometry.H3Models.Ball

Показать файл Открыть проект

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

Метод Описание
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