Namespace RichHudFramework.UI.Rendering
Classes
- BlockBoard
Draws a 3D rectangular prism using billboards in world space. Useful for drawing bounding boxes.
- MatBoard
A high-level wrapper for drawing textured, colored, and optionally clipped rectangular billboards. Utilizes MyTransparentGeometry for rendering.
- Material
Represents a handle to a Space Engineers Transparent Material. Supports defining full textures or specific sprites (texture regions) within a texture atlas.
- MaterialFrame
Manages the positioning, scaling, and alignment of a Material on a QuadBoard. Handles calculations for aspect-ratio preservation via UV cropping or geometry scaling.
- PolyBoard
Renders a regular 2D polygon (e.g., triangle, hexagon, circle approximation) using billboards. The shape is constructed as a triangle fan from the center.
- PuncturedPolyBoard
Renders a circular 2D polygon (annulus) using billboards with the center removed. Geometry is constructed as a strip of quads connecting an inner and outer ring.
Structs
- BoundedQuadBoard
A container struct associating a QuadBoard definition with specific 2D bounds.
- BoundedQuadMaterial
Defines the visual properties for rendering a quad where the texture coordinates are axis-aligned and defined by a bounding box (Min/Max). This is optimized for standard sprites or full textures without distortion.
- CroppedBox
Represents a bounding box paired with a masking box. The mask is used to clip the rendering of the associated billboard, acting as a scissor rectangle.
- FlatQuad
Represents a 2D quadrilateral defined by four points. Used for both screen-space geometry definitions and texture coordinate (UV) mapping.
- PolyMaterial
Defines the visual properties for rendering arbitrary N-sided polygons, including a list of specific texture coordinates matching the polygon's vertices.
- QuadBoard
Defines the visual properties of a rectangular billboard, including its texture, color, texture coordinates, and skew.
- QuadBoardData
Contains the final geometry and material data for a QuadBoard, ready to be submitted to the renderer.
- QuadMaterial
Defines the visual properties for rendering a quadrilateral using explicit texture coordinates for each corner, allowing for non-rectangular UV mappings (e.g., distortion or rotation).
- TriMaterial
Defines the visual properties (texture, color, and UV mapping) for rendering a single triangle billboard.
- Triangle
Represents a 2D triangle defined by three points. Used primarily for texture coordinate (UV) mapping or screen-space geometry.
- TriangleD
Represents a 3D triangle defined by three double-precision world coordinates. Used for defining world-space geometry.
Interfaces
- IFontMin
Simplified Font interface for use by HUD API clients.
- ILine
Represents a single horizontal line of text within a ITextBuilder.
This interface serves as a collection of IRichChar and stores line-specific layout properties, such as the line's dimensions and vertical offset.
- IReadOnlyMaterialFrame
Read-only interface defining the mapping of a material to a quad.
- IRichChar
Represents a single glyph within a rich text element.
This interface exposes the character content, its specific formatting (font/color), and its calculated layout geometry (size/offset) relative to the container.
Warning: This object is a transient flyweight. It points to an index in a mutable buffer. Do not store references to IRichChar across text updates. If the parent text changes, this interface may point to stale or recycled data.
- ITextBoard
Represents a renderable text element that supports rich text formatting, scrolling, and advanced layout.
This interface combines text manipulation (via ITextBuilder) with rendering logic. It handles text clipping, auto-resizing, text alignment, and coordinate-based character lookups.
- ITextBuilder
A mutable collection of lines and characters that supports RichText formatting.
Functioning similarly to a StringBuilder, this interface allows for appending, inserting, and removing text while maintaining formatting data (colors, fonts) and handling line wrapping modes (Unlined, Lined, Wrapped).
Supports object.ToString() for getting plain text copies.
Enums
- FontStyles
Font styles used by RHF. Regular, italic and underline styling is always available. Bolding requires optional font atlases that may or may not be present.
- MaterialAlignment
Defines how a Material texture is mapped to the geometry of the UI element.