Table of Contents

Class InfDefectDisplayee

Namespace
Hi.Cbtr
Assembly
HiCbtr.dll

Encapsulates inf edge cuts defect visualization for a cube tree, including defect boxes, edge segments, and flag drawings.

The drawings are made by Display(Bind), where a GL context is current, never by the constructor, which runs on the thread that scans the tree, outside any frame: a drawing made there while no other context lives is stale the moment it is returned (the context made for it is the only one of its share group, and the group dies with it), and a large one, such as the outline of more than 113 boxes, keeps the process's anchor context alive although no canvas was ever opened.

public class InfDefectDisplayee : IDisplayee, IExpandToBox3d, IDisposable
Inheritance
InfDefectDisplayee
Implements
Inherited Members
Extension Methods

Remarks

Both drawings are rebuildable: they keep no copy of their data, are not resident, and draw nothing once their share group died, so a display that finds them missing, or made under another ShareGroupGeneration, makes them again from DefectBoxes and the edges the constructor took.

Display(Bind) and Dispose() may run on different threads. A display makes and takes what it draws under the gate the dispose takes, and draws outside it; a display after the dispose draws nothing and makes nothing.

Constructors

InfDefectDisplayee(List<InfNodeInfo>)

Ctor. Takes the shown boxes and their inf edges from the given inf node info list; makes no drawing (the class note).

public InfDefectDisplayee(List<CubeTree.InfNodeInfo> nodeInfoList)

Parameters

nodeInfoList List<CubeTree.InfNodeInfo>

Properties

DefectBoxes

Defect boxes for display (capped to Hi.Cbtr.InfDefectDisplayee.defectBoxesToShow).

public List<box3d_t> DefectBoxes { get; }

Property Value

List<box3d_t>

HasDefects

Whether any inf defects were found.

public bool HasDefects { get; }

Property Value

bool

NodeInfoList

Inf node info list from cube tree.

public List<CubeTree.InfNodeInfo> NodeInfoList { get; }

Property Value

List<CubeTree.InfNodeInfo>

Methods

Display(Bind)

Display function called in DispEngine rendering loop.

public void Display(Bind bind)

Parameters

bind Bind

Bind with DispEngine. See Bind.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Dispose(bool)

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

ExpandToBox3d(ref box3d_t)

Expands the destination box. This function is usually used to compute the bounding box of elements. box3d_t is a value type, so the destination is passed by reference (the C++ expand_to_box3d(box3&) shape); an implementation writes dst = dst.Expanded(...) or forwards ref dst to its parts.

public void ExpandToBox3d(ref box3d_t dst)

Parameters

dst box3d_t

Destination box, expanded in place

ReportTo(IProgress<IMessage>)

Reports defect information to a message host.

public void ReportTo(IProgress<IMessage> messageProgress)

Parameters

messageProgress IProgress<IMessage>