Table of Contents

Namespace SearchAThing.Sci

Classes

Arc3D

base geometry for arc 3d entities.

the CS origin is the Center of the arc. the CS basex, basey forms the arc plane.

angles start, end are normalized [0,2pi) measured as angle from the basex right-hand rotating around cs basez. the arc coverage goes from the angle start point toward angle end point right-hand rotating arond cs basez.

while the CS right hand rule allow to know the effective arc coverage Sense information allow to know the effective edge orientation.

Arc3DEqualityComparer

checks if arcs share same plane, origin, radius, angle start-end

BBox3D

Bounding Box. Initially empty, each added point will increase the extension if min or max exceed actual bbox limits. It works within wcs.

Circle3D

Specialized version of Arc3D with StartAngle=0 and EndAngle=2PI

ComputationQueue<T>

helper circular queue manager for computation. at constructor the maxSize ( default=3 ) can be specified to allow retrieval of previous computed items

Constants
CoordinateSystem3D

CS with origin and basex, basey, basez orthonormal vectors. WCS coord can be translated to this cs using ToUCS() method. UCS coord can be translated back to wcs using ToWCS() method.

DQuaternion

Quaternion implementation using doubles for purpose of Vector3D.RotateAboutAxis and Vector3D.RotateAs references:

DVector3EqualityComparer

helper class to compare vector3d set using given tolerance

DiscreteSpaceItemComparer<T>

comparer to search in DiscreteSpace

DiscreteSpaceItem<T>

base item for DiscreteSpace

DiscreteSpace<T>

organize given item list into a discretized space to allow fast query of elements in a space region

DoubleEqualityComparer

helper class to compare a set of doubles by using given tolerance

Edge

interface implemented by some type of geometries used in Loop such as Line3D, Arc3D and Circle3D

Ext

netcore-sci extension methods

Face

Planar face with one (outer) or more loops (inners)

Geometry

base abstract type for geometries such as Vector3D, Line3D, Arc3D and Circle3D

Int64Map

Scan a given domain of doubles, determine the midpoint ( Origin ) and using the given tolerance it tests for integrity in conversion between values from double to Int64 and vice-versa. It can generate a Int64MapExceptionRange.

Int64MapExceptionRange
LUT

Lookup Table genertor

Line3D

Defines a line by an application point (From) and an extension from there (V). To is computed as From+V. Line can be built by givin From and To, or From and V using specialized constructor with Line3DConstructMode. Line can be built from a point using LineTo(), LineV() or LineDir() extension methods.

Line3DEqualityComparer

equality comparer helper for Line3D types

Loop

planar edges loop containing line and arcs

LoopEqualityComparer
Matrix3D

basic matrix3d with 3x3 double elements and operations to allow arithmetic and 3d linear equation resolution.

NVector3EqualityComparer

helper class to compare vector3d set using given tolerance

NormalizedAngleComparer

normalized angles in range [StartAngle, EndAngle] comparer

Example:

start:1.25π end:0.5π the set { 0.25π, 0.75π } sorts to { 0.75π, 0.25π }

Precondition: constructor start, end angles and compare method arguments must normalized [0,2PI)

Plane3D

encapsulate a CS to define a plane3d

Plane3DRegion

region of a plane3d delimited by a set of coplanar points

PythonException
PythonPipe

Helper to invoke python and retrieve results.

PythonPipeOptions
Toolkit

netcore-sci toolkit static methods

Toolkit.SciPropertiesResolver

addictional json resolver to ignore some Vector3D, Line3D properties during serialization without affecting source code

Toolkit.UnitJsonConverter<TUnitType>

json converter to write unit using abbrev

Transform3D

Use quaternion to append rotate transformations

Triangle3D

helper class to hold triangle info, used in conjunction with LibTessDotNet methods.

Vector3D

can be used to describe a wcs point or a vector x,y,z components from some reference origin

Vector3DEqualityComparer

helper class to compare vector3d set using given tolerance

Vector3DWithOrder

support class for DistinctKeepOrder extension

Vector3DWithOrderEqualityComparer

helper class to compare vector3d in a distinct operation retaining original order, used by DistinctKeepOrder()

Structs

NumbersStatNfo

statistical info about number set

Enums

CircleTangentType
CoordinateSystem3DAutoEnum
EdgeEnd
Face.BooleanMode
GeomSegmentMode
GeometryType
Line3DConstructMode
LineIntersectBehavior
LoopContainsEdgeMode
LoopContainsPointMode
OrdIdx
PythonPipeOnErrorResultEnum
SmartCsMode

Delegates

Ext.HatchSetterDelegate
Toolkit.WalkEdgeStopConditionDelegate