Namespace Hi.Mech.Topo
Classes
- Anchor
A coordinate system using in kinematic chain.
An anchor is a view
(world, id)over a node of the native topology registry (core.dll, Hi.Mech.Topo.NativeTopo): its GUID, parent and branch maps live on the native node and every walk over the branch graph runs there under the registry's lock; the name is cached on the view and pushed to the node on set, as the view is the node's only writer. The Hi.Mech.Topo.TopoWorld keeps the connected component allocated while any view into it is reachable, and the same native id always resolves to the same view object, so an anchor remains a sound dictionary key andReferenceEqualscomparand.
- AnchorFuncSource
Provides an anchor through a function delegate.
- AnchoredBoxable
Represents an object that is both anchored to a root point and can expand to a 3D box.
- AnchoredDisplayee
Represents a displayable object that is anchored to a specific point in a topology.
- Asmb
Collection of Anchor and Asmb.
Membership is a tree: every anchor and every assembly belongs to at most one parent, recorded on Parent and Parent. Change membership only through Add(Anchor), Add(Asmb), Remove(Anchor) and Remove(Asmb); the child collections are snapshots.
A member is addressed by a path of names relative to the assembly asked, joined by PathSeparator, one segment per assembly on the way down:
"MillingTool.MillingCutter.CutterTip"asked of the equipment names the same anchor as"MillingCutter.CutterTip"asked of the tool. Any segment may give the member's GUID in braces instead,"MillingTool.{12345678}", which is how GetPath(Anchor) spells a member whose name cannot stand on its own. See GetAnchorByPath(string).An assembly is a view
(world, id)over a node of the native topology registry (core.dll, Hi.Mech.Topo.NativeTopo): name, GUID, parent, children, walks, paths and matrix maps are all read from and written to the native node, under the registry's own lock. The Hi.Mech.Topo.TopoWorld keeps the whole connected component allocated while any view into it is reachable, and the same native id always resolves to the same view object, so reference equality and dictionary keys behave as they always did.
- AsmbDraw
Render all Anchors of the Asmb in form of CoordinateDrawing.
- Branch
The linkage between two Anchor objects.
A branch is a view
(world, id)over a branch node of the native topology registry (core.dll, Hi.Mech.Topo.NativeTopo). Attaching creates the node, detaching frees it — the id then goes stale and the view latches IsBreak; the ends, name and GUID are cached on the view (name and GUID are pushed on set), and the transformer is a managed object bound to this branch: its state is the write-side truth, every mutation of it is pushed to the native node as a whole, and the native walks read the native copy. The same native id always resolves to the same view, and so to the same transformer object.
- DirectionBranchPackUtil
Utility of topology: the matrix of a branch chain (GetBranchChain(IGetAnchor, IGetAnchor)), the one the kinematic queries and the XYZABC solvers share.
- DynamicFreeform
Dynamic Freeform transformer.
- DynamicRotation
Dynamic rotate transformer.
- DynamicTranslation
Dynamic translate transformer
- GeneralTransform
Represents a general transformation that combines scaling, rotation, and translation.
- NoTransform
Static Identity Transformer.
- StackTransformer
Represents a transformer that maintains a stack of transformations.
- StaticFreeform
Static Freeform transformer.
- StaticRotation
Static Rotation.
- StaticTranslation
Static Translate.
- TopoDisplayee
Implements a displayable topological element that manages a collection of anchored displayees within an assembly.
- TopoDisplayeeUtil
Provides utility methods for displaying and manipulating topological displayees.
- TopoReflection
Clone Asmb and provide map between source topology and cloned topology. The clone is one native
clone_subtreeunder one registry lock, so it is one consistent snapshot of the source: every assembly and anchor inside the root (names copied, fresh GUIDs), then every branch whose both ends were cloned, each with a copy of its transformer. The twin lives in a Hi.Mech.Topo.TopoWorld of its own with the root twin as its root assembly.
- TransformerUtil
Utility for ITransformer.
Interfaces
- IAnchoredDisplayee
Interface for objects that can be displayed and are anchored to a root point in a topology.
- IDynamicRegular
Dynamic Regular Transformer
- IDynamicRotation
Topology joint that applies a single-axis rotation about Pivot by Angle_rad.
- IDynamicTransformer
Dynamic Transformer.
- IGetAnchor
Interface to get the key Anchor.
- IGetAnchoredDisplayeeList
Interface for getting a list of anchored displayable objects.
- IGetFletchMount
Interface of GetFletchMount().
- IGetInverseTransformer
Interface for objects that can provide their inverse transformer.
- IGetTopoIndex
interface of IGetAnchor or IGetAsmb.
- IStaticTransformer
Static Transformer
- ITopo
Defines an interface for displaying topological elements that combines assembly, anchoring, and display capabilities.
- ITopoDisplayee
Represents a topology object that can be displayed and has an anchor.
- ITransformer
Interface of single transform matrix manipulation.
- ITransformerProperty
Interface for objects that have a transformer property.