﻿ Bentley.GeometryNET Namespace        # 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 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:

• components X,Y,Z,W are read/write properties
• Vector is a read/write property, copying from/to X,Y,Z
• NormalizedAxis is a read-only property. It returns the normalized Vector.
• Angle is a read-only property
• Magnitude is the square root of the sum of squares of all 4 components.
• AsDMatrix3d is the 3x3 matrix form 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