Class InfDefectDisplayee
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
nodeInfoListList<CubeTree.InfNodeInfo>
Properties
DefectBoxes
Defect boxes for display (capped to Hi.Cbtr.InfDefectDisplayee.defectBoxesToShow).
public List<box3d_t> DefectBoxes { get; }
Property Value
HasDefects
Whether any inf defects were found.
public bool HasDefects { get; }
Property Value
NodeInfoList
Inf node info list from cube tree.
public List<CubeTree.InfNodeInfo> NodeInfoList { get; }
Property Value
Methods
Display(Bind)
Display function called in DispEngine rendering loop.
public void Display(Bind bind)
Parameters
bindBindBind 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
disposingbool
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
dstbox3d_tDestination box, expanded in place
ReportTo(IProgress<IMessage>)
Reports defect information to a message host.
public void ReportTo(IProgress<IMessage> messageProgress)