Isle
|
[AI] Represents a 2D region as a set of vertical spans each containing one or more horizontal segments. More...
#include <mxregion.h>
Public Member Functions | |
MxRegion () | |
[AI] Constructs an (initially empty) region. More... | |
~MxRegion () override | |
[AI] Destructor; destroys all spans and contained segments. More... | |
MxRect32 & | GetBoundingRect () |
[AI] Returns a reference to the current bounding rectangle for the region. More... | |
virtual void | Reset () |
[AI] Removes all spans and resets the bounding rectangle to an empty state. More... | |
virtual void | AddRect (MxRect32 &p_rect) |
[AI] Adds a rectangle to this region, merging or splitting spans and segments as necessary. More... | |
virtual MxBool | Intersects (MxRect32 &p_rect) |
[AI] Checks if this region intersects with a given rectangle (any overlap between the region's covered area and p_rect). More... | |
virtual MxBool | IsEmpty () |
[AI] Returns TRUE if the region contains zero spans (i.e., is empty). More... | |
void | Compact () |
[AI] Compacts the region's internal structure, merging adjacent/overlapping spans and segments when possible. More... | |
![]() | |
MxCore () | |
[AI] Constructs a new MxCore object and assigns it a unique id. More... | |
virtual | ~MxCore () |
[AI] Virtual destructor. Required for correct polymorphic cleanup in derived classes. More... | |
virtual MxLong | Notify (MxParam &p_param) |
[AI] Virtual callback notification mechanism. More... | |
virtual MxResult | Tickle () |
[AI] Called by tickle managers to allow the object to update itself. More... | |
virtual const char * | ClassName () const |
[AI] Returns the runtime class name of this object. More... | |
virtual MxBool | IsA (const char *p_name) const |
[AI] Checks whether this object's class type or parents match the given name. More... | |
MxU32 | GetId () |
[AI] Gets the unique (per-process) id assigned to this object instance. More... | |
Protected Attributes | |
MxSpanList * | m_spanList |
[AI] List of vertical spans for the region. [AI] More... | |
MxRect32 | m_boundingRect |
[AI] Cached bounding rectangle for the whole region. [AI] More... | |
Friends | |
class | MxRegionCursor |
[AI] Represents a 2D region as a set of vertical spans each containing one or more horizontal segments.
Used to describe complex areas for rasterization or clipping. Internally implemented as a list of spans, each containing their horizontal segments, forming an efficient structure for union, intersection, and decomposition.
Definition at line 327 of file mxregion.h.
MxRegion::MxRegion | ( | ) |
|
override |
[AI] Destructor; destroys all spans and contained segments.
Definition at line 20 of file mxregion.cpp.
|
virtual |
[AI] Adds a rectangle to this region, merging or splitting spans and segments as necessary.
[AI]
p_rect | Rectangle to be added. [AI] |
Definition at line 35 of file mxregion.cpp.
void MxRegion::Compact | ( | ) |
[AI] Compacts the region's internal structure, merging adjacent/overlapping spans and segments when possible.
|
inline |
[AI] Returns a reference to the current bounding rectangle for the region.
[AI]
Definition at line 346 of file mxregion.h.
[AI] Checks if this region intersects with a given rectangle (any overlap between the region's covered area and p_rect).
p_rect | Rectangle to check overlap against. [AI] |
Definition at line 88 of file mxregion.cpp.
|
inlinevirtual |
[AI] Returns TRUE if the region contains zero spans (i.e., is empty).
Definition at line 369 of file mxregion.h.
|
virtual |
[AI] Removes all spans and resets the bounding rectangle to an empty state.
[AI]
Definition at line 27 of file mxregion.cpp.
|
friend |
Definition at line 376 of file mxregion.h.
|
protected |
[AI] Cached bounding rectangle for the whole region. [AI]
Definition at line 330 of file mxregion.h.
|
protected |
[AI] List of vertical spans for the region. [AI]
Definition at line 329 of file mxregion.h.