Classes
Class | Description | |
---|---|---|
![]() |
AdjacentIntervalDifferenceEquationNewtonRaphsonSolver |
Generic logic for multivariate Newton-Raphson iteration to solve a set of nonlinear
equations. The caller provides an object that can be called to evaluate a function
of two adjacent unknowns. The solver iterates to find a sequence of unknowns that
make adjacent function values match.
The solver asks a caller-supplied object for function values and (optionally) derivative values.
|
![]() |
Bezier |
static methods to do bezier polynomial calculations on coefficient arrays.
|
![]() |
Bspline |
Static methods for manipulating bspline arrays.
|
![]() |
BsplineFit |
Static methods for manipulating bspline arrays.
|
![]() |
Comparator |
Class to perform toleranced equality tests among various geometric types.
The class carries 3 categories of tolerances: Coordinate, Unit, and Angle.
Each tolerance categore has an absolute part and a relative part.
|
![]() |
ConvexHull |
Convex hull calculation
|
![]() |
DClothoid2d |
normalized spiral with linear variation of curvature.
|
![]() |
DPoint3dArray |
Utility methods for arrays of DPoint3d acting as isolated points (i.e. not linestrings or polygons)
|
![]() |
DPoint3dLineString |
Utility methods for arrays of DPoint3d acting as linestrings.
|
![]() |
DPoint3dPolygon |
DPoint3dPolygon contains static methods which treat IList of DPoint3d as a polygon (i.e. enclosing area)
|
![]() |
DSpiral2d |
Abstract base class for virtuals that implement spiral curve variants.
The base class implements some methods directly, and has others abstract.
A spiral is governed by its start bearing, start curvature, end bearing,
and end curvature, and a type code which controls how bearing and curvature
vary as a function of distance along the curve.
The curve position, measured from a local origin at the start of the curve,
is an integral of the spiral functions:
x(t1) = x(0) + integral [0..L] dt Math.Cos(Q(t)) y(t1) = y(0) + integral [0..L] dt Math.Sin(Q(t))
Taking derivatives, the bearing angle of the curve is exactly Q(t), and
the curvature is exactly K(t)=dQ/dt.
For any the base interval, the curve LENGTH is the angle change divided by the average curvature.
An newly constructed spiral has no defined bearing or curvature.A spiral becomes useful when a setup function -- SetBearingCurvatureBearingCurvature or SetBearingCurvatureLengthCurvature --
is called.The setup functions each take 4 of the 5 values (length, start bearing, end bearing, start curvature, end curvature) and compute the 5th.
|
![]() |
DSpiral2d..::..SpiralAccumulator |
Query functions used while integrating a spiral
|
![]() |
DSpiral2d..::..SpiralPositionAccumulator |
Accumulator for simple x,y vector integrations.
|
![]() |
DSpiral2d..::..TransformedSpiralLengthAccumulator |
Specialized derived class to integrate length after transform
Length is accumulated into the x component of the result vector.
|
![]() |
DSpiral2d..::..TransformedSpiralPositionAccumulator |
Accumulator for simple x,y vector integrations.
|
![]() |
DSpiral3d |
Wrapper class for a DSpiral2d placed into 3D with an arbitrary transform and an
active interval.
There are two levels of fractionalization:
Base interval fractions. The base interval has fractions 0 and 1 at the
points where bearing and curvature are applied.
Active interval fraction. The endpoints of the active interval are specified as baseFractions.
An activeIntervalFraction maps is 0 to 1 within that interval.
|
![]() |
Geometry |
static class for geometric services.
|
![]() |
Sort |
Simple sorting utilities
|
![]() |
TriDiagonalSystem |
Data management for building and solving a tridiagonal linear system with n rows.
Internal data arrays hold left, main and right diagonals of the matrix.
Internal data arays for two vectors named X and B.
The matrix part is tagged for one of 3 states:
RawMatrix -- initialization and data entry. The 3 diagonals contain the entries of A "as expected"
FactorOK -- The arrays of diagonals in A have been factored into L*U, where
L is lower diagonal with 1 on diagonal,
U is upper diagonal.
Completion of factorization implies all diagonal entries are nonzero.
FactorFailed -- L and U are as left in midst of factorization. Not good -- A is not recovrable.
Caller can explicitly request transtion from RawMatrix to FactorOK by calling Factor (), and
(except for numerical roundoff error) reverse this with DeFactor ().
Simple use pattern is to install values in A and B, then call FactorAndBackSubstitute, and extract the solution X.
It is also possible to set up A and X and multiply AX to form B. The AX product can be formed
from either the RawMatrix or FactorOK state.
|
![]() |
XmlFormatter |
Static methods for converting Bentley.Geometry types to and from Xml fragments.
For each type, the method ContentStringOf (T value) returns "just the content"
for that type. This can be wrapped in the xml tag du jour.
|
Structures
Structure | Description | |
---|---|---|
![]() |
Angle |
Value class for an angle, addressed via read/write properties Radians and Degrees.
|
![]() |
DEllipse3d |
Elliptic arc represented by center, vectors to points at 0 and 90 degrees in parameter space,
start angle, and sweep angle.
|
![]() |
DMap4d |
A DMap4d is a pair of perspective transforms (DMatrix4d) which are inverses of each other.
|
![]() |
DMatrix2d |
3x3 matrix for linear transformation of xyz vectors.
|
![]() |
DMatrix3d |
3x3 matrix for linear transformation of xyz vectors.
|
![]() |
DMatrix4d |
Value class for a 4x4 matrix as used in perspective transformations.
|
![]() |
DPlacementZX |
Value class for an orthogonal coordinate frame described by Z and X vectors.
|
![]() |
DPlane3d |
plane represented by origin and normal vector
|
![]() |
DPoint2d |
x,y coordinates of a point.
|
![]() |
DPoint2dDouble |
DPoint2d with double tag.
|
![]() |
DPoint3d |
x,y,z coordinates of a point.
|
![]() |
DPoint3dDouble |
DPoint3d with double tag.
|
![]() |
DPoint4d |
A DPoint4d has four components named x,y,z,w.
At appropriate times this is interpretted as a "point", "vector",
"plane", and "quaternion".
|
![]() |
DQuaternion |
Value class for a quaternion.
Summary of properties:
|
![]() |
DRange1d |
Value class for the range of values delimited by a lower and upper limit.
The two limits are designated Low and High, and are always sorted.
A DRange1d initializes into a null state with no contained interval.
|
![]() |
DRange2d |
Axis-aligned range box represented by two diagonally opposite corners.
|
![]() |
DRange3d |
Axis-aligned range box represented by two diagonally opposite corners.
|
![]() |
DRay3d |
Ray represented by a origin and direction. The direction vector is NOT required to be normalized.
|
![]() |
DSegment1d |
Interval of the real line, containing points {x=a+s*(b-1)} for any s in {[0..1]}
The limits are NOT expected to be sorted. {a>b} is a valid interval whose "start" is higher than its "end".
|
![]() |
DSegment3d |
Line segment represented by start and end points.
|
![]() |
DTransform2d |
affine transform as a 2x3 matrix
|
![]() |
DTransform3d |
affine transform as a 3x4 matrix
|
![]() |
DVector2d |
x,y components of a vector.
|
![]() |
DVector3d |
x,y,z components of a vector.
|
![]() |
EllipticIntegrals |
Axis and quadrant logic for ellipse arc length integrations.
|
![]() |
EulerAngles |
package of 3 angles used as Euler constructions in orientations
|
![]() |
GaussianQuadrature |
Services for weighted integration with Gauss rules
|
![]() |
GeoPoint |
integer x,y,z coordinates of a point.
|
![]() |
GeoPoint2d |
integer x,y coordinates of a point.
|
![]() |
MinMaxIndexedPoint |
Carrier structure for a pair of tuples carrying (double, int, DPoint3d), with one tuple recording a min value of the double and the other a max value.
In default constructor state, numCall is zero and all others are meaningless.
|
![]() |
Point2d |
integer x,y coordinates of a point.
|
![]() |
Point3d |
integer x,y,z coordinates of a point.
|
![]() |
Polynomials |
Assorted utilities for manipulating polynomials
|
![]() |
Polynomials..::..Power |
Utilities for polynomials in power basis form
|
![]() |
Polynomials..::..Trig |
Utilities for polynomials related to trig functions
|
![]() |
Roots |
Analytic root finders for cubic and quartic equations.
|
![]() |
YPRAngles |
package of 3 angles used as yaw, pitch, roll in orientations
|
Interfaces
Interface | Description | |
---|---|---|
![]() |
AdjacentIntervalDifferenceEquationNewtonRaphsonSolver..::..IntervalFunctionEvaluator |
Interface for query functions to evaluate the objective function between two adjacent variable values.
|
![]() |
IScalarFunction |
interface with a generic function with a double as input and a double as output.
|
![]() |
IWeightedAccumulator |
Callback functions for integration driver.
|
Enumerations
Enumeration | Description | |
---|---|---|
![]() |
ParameterExtensionCode |
Enumeration of choices for extending start and end of curves.
|
![]() |
ToleranceMode |
Enumeration to select from 'Coordinate' or 'Unit' tolerances
|