Namespace GeometryHelper
Namespaces
Classes
- GeometryHelperLog
Where the GeometryHelper libraries report what they left out or could not do.
Conversions that walk many objects skip what they cannot read rather than throw, because one bad object should not cost the rest. What was skipped, and why, is written here, so that an empty or short result can be explained: an IFC file that could not be opened, a reference model that is not IFC, a body the transformation could not rebuild.
Messages go to Trace under the category TraceCategory unless Writer is set. The Output window of Visual Studio shows them while debugging, and DebugView shows them from a plugin running inside Tekla or AutoCAD. Set Writer to send them to a file, a status bar or another logging library instead, and Enable to false to turn them off. Writer has examples for the console, the status bar of Tekla Structures and a file.
Writing a message never throws: a writer that fails is ignored, so logging cannot break the work it reports on. Like Global, the settings are shared by the whole process.
- MassProperties3
How much a body weighs, where its weight is centred, and how it resists turning.
- MeasureComparison3
A body's material measured every way: its volume, centroid and surface area by each method, how far apart they come, and how far its faces close.
- OffsetOptions
How an offset shapes the corners where its edges pull apart: the join, how far a sharp corner may reach, and how finely a round corner is drawn.
The options are immutable, so one instance can be shared between threads and kept as a setting. Default gives sharp corners, as AutoCAD's OFFSET does with its default gap type.
Structs
- Angle
Represents an angle as a single value that can be read as either radians or degrees.
The value is stored in radians because every angular API built on this type works in radians:
GeoVector2.GetAngleToandGeoRectangle2.AngleRadin the plane,GeoVector3.GetAngleToandGeoTransform3.RotationXin space, andTolerance.EqualAngleRadin both. Degrees are a view over that value, converted on read.There is deliberately no public constructor taking a bare double. The reason this type exists is that a number on its own does not say which unit it is in, so the unit has to be named at the point of creation: use FromRadians(double) or FromDegrees(double).
- Tolerance
Tolerance used for geometric comparisons.
Every comparison in this library that can be affected by floating point error takes a tolerance, and every such method has an overload without one that reads Global. Neither library compares coordinates with
==.Global is one setting shared by both libraries. Changing it for a drawing in the plane changes it for a model in space as well.
Make one with a constructor, or take Default or Global.
new Tolerance()is not the default tolerance: likedefault(Tolerance)it runs no constructor and has every threshold at 0, under which only an exact match is equal and a face out of flat by rounding alone is refused.