<html>
<head>
<meta charset="utf-8" />
<title>Gorgon Game Engine Design Document</title>
<style>
body { background-color:#eee; }
my li {
font-family: monospace;
list-style-type: none;
}
my li:before {
font-size:70%;
font-weight:bold;
}
my li[f]:before {
content: "[ f]";
}
my li[c]:before {
content: "[ct]";
}
my li[e]:before {
content: "[ev]";
}
my li[m]:before {
content: "[ m]";
}
my li[f][s]:before {
content: "[sf]";
}
my li[m][s]:before {
content: "[sm]";
}
my li:before {
content: "[ ]";
white-space:pre;
}
my *[d] {
color:#260;
}
my *[q] {
color:#260;
}
my *[x] {
color:#821;
}
my *[p] {
color:#661;
}
my *[r]::after {
content: " « to be removed";
color:#621;
font-size:80%;
}
my *[q]::after {
content: " « to be analyzed";
color:#006;
font-size:80%;
}
my *[a]::before {
content:"[!!]" !important;
}
my task {
font-family: monospace;
display:block;
color:black;
}
my task::before {
content:"[»t] ";
font-size:70%;
font-weight:bold;
}
my section:before {
content:attr(name);
font-size:140%;
font-weight:bold;
margin-left:-10px;
counter-reset:module;
margin-bottom:15px;
display:block;
}
my section {
padding-left: 10px;
display:block;
}
my module:before {
counter-increment: module;
content:counter(module) ". " attr(name);
font-size:120%;
font-weight:bold;
margin-left:-15px;
margin-bottom:15px;
display:block;
}
my module[optional]:before {
counter-increment: module;
content:counter(module) ". [o] " attr(name);
font-size:120%;
font-weight:bold;
margin-left:-15px;
margin-bottom:15px;
display:block;
}
my module {
padding-left: 15px;
display:block;
}
my namespace:before {
content:"[n] " attr(name);
font-size:100%;
font-weight:bold;
margin-left:-15px;
margin-bottom:5px;
display:block;
background-color:#eee;
}
my namespace {
padding-left: 15px;
display:block;
list-style-type: none;
margin-bottom:10px;
background-clip: padding-box;
background: linear-gradient(90deg, rgba(0,0,0,0.2) 0pt, rgba(0,0,0,0) 2px);
}
my class:before {
content:"[c] " attr(name);
font-size:100%;
font-weight:bold;
margin-left:-15px;
margin-bottom:5px;
display:block;
background-color:#eee;
}
my class[inherits]:before {
content:"[c] " attr(name) " (inherits: " attr(inherits) ")";
font-size:100%;
font-weight:bold;
margin-left:-15px;
margin-bottom:5px;
display:block;
background-color:#eee;
}
my class {
padding-left: 15px;
display:block;
list-style-type: none;
margin-bottom:10px;
background-clip: padding-box;
background: linear-gradient(90deg, rgba(0,0,0,0.2) 0pt, rgba(0,0,0,0) 2px);
}
my *[done] {
color:#260;
}
</style>
</head>
<my>
<section name="Core modules">
<module name="Common">
<class name="Layer">
<li c d> Empty
<li c d> Resizing
<li c d> Move
<li f d> Move assignment
<li f d> Swap
<li f d> Add
<li f d> Insert (under)
<li f d> Remove
<li f d> HasParent
<li f d> GetParent
<li f d> begin/end
<li f d> First/Last
<li f d> PlaceBefore
<li f d> PlaceToTop
<li f d> PlaceToBottom
<li f d> GetOrder
<li f d> Move
<li f d> Resize
<li f d> SetBounds
<li f d> GetSize
<li f d> GetLocation
<li f d> GetBounds
<li f d> Show
<li f d> Hide
<li f d> IsVisible
<li f d> Render
</li></class>
</module>
<module name="Operating system">
<namespace name="OS">
<li f > Name
<li f > Version
<li f d> GetEnv
<li f d> Open
<li f d> OpenTerminal
<li f d> Start
<li f d> DisplayMessage
<li f d> GetAppDataPath
<li f d> GetAppSettingPath
<li f > IsInternetConnected
<li f > IsNetworkConnected
<li f > IsWifiConnected
<li f > BatteryStatus
<li f > BatterPercentage
<li f > AvailableMemory
<li f > FreeMemory
<li f > ProcessorInfo
<li f > GPUInfo
<li f > FileTypeData
<li f > SystemFonts -> vector(filename)
<li f > SystemSound -> map(tag, filename)
</li><br>
<class name="CPU">
<li m > Brand
<li m > Model
<li m > Speed
<li m > Cores
<li m > Threads
</li></class>
<class name="GPU">
<li m > Memory
<li m > Brand
<li m > Model
</li></class>
<class name="FileType">
<li m > Name
<li m > Description
<li m > Icon
</li></class>
<namespace name="User">
<li f d> GetName
<li f d> GetUsername
<li f d> GetDocumentsPath
<li f d> GetHomePath
<li f d> GetDataPath
<li f > IsAdmin
</li></namespace>
</namespace>
</module>
<module name="Window manager">
<class name="Window" inherits="Layer">
<li c d> Automatic placement
<li c d> Manual placement
<li c d> Fullscreen
<li f d> processmessage
<li f d> activatecontext
<li f d> Move
<li f d> Resize
<li f d> Show
<li f d> Hide
<li f d> IsVisible
<li f d> Close
<li f d> ShowPointer
<li f d> HidePointer
<li f d> SwitchToLocalPointers
<li f d> SwitchToWMPointers
<li f d> Render
<li f d> SetTitle
<li f d> GetTitle
<li f d> AllowResize
<li f d> PreventResize
<li f d> GetName
<li f d> GetExteriorDimensions
<li f d> GetPosition
<li f d> GetMonitor
<li f d> IsClosed
<li f d> SetIcon
<li f d> Focus
<li f d> IsFocused
<li f d> Minimize
<li f d> Maximize
<li f d> IsMinimized
<li f d> IsMaximized
<li e d> ActivatedEvent
<li e d> DeactivatedEvent
<li e p> DestroyedEvent
<li e d> ClosingEvent
<li e d> MovedEvent
<li e d> ResizedEvent
<li e d> MinimizedEvent
<li e d> RestoredEvent
<li e d> InputEvent
<li e d> KeyEvent
<li e d> CharacterEvent
<li m d> Pointers
<li s m d> Windows
</li></class>
<namespace name="WindowManager">
<li f > CurrentContext
<li f d> SetClipboardText
<li f d> GetClipboardText
<li f > GetIconFor
</li><br>
<class name="Icon">
<li c d> From data
</li></class>
<class name="Pointer">
<li c > From data
<li c > Default from OS
<li c > From OS
</li></class>
<class name="Monitor">
<li f d> GetSize
<li f d> GetLocation
<li f d> GetUsable
<li f d> IsPrimary
<li f d> GetName
<li s f d> Primary
<li s f d> Monitors
<li s f d> Refresh
<li s f > IsChangeEventSupported
<li s e > ChangedEvent
</li></class>
</li></namespace>
</module>
<module name="Graphics related">
<namespace name="Graphics">
<li f d> Tile
<li d> Tiling
<li d> Alignment
<li d> TextAlignment
<li d> Placement
<li f d> GetHorizontal
<li f d> GetVertical
<li f d> CalculateOffset
<li d> ColorMode
<li f d> GetBytesPerPixel
</li><br>
<class name="RGBA">
<li c d> From luma, int
<li f d> operator = (RGBA, luma, int)
<li f d> operator ==
<li f d> operator !=
<li f d> Luminance
<li f d> AccurateLuminance
<li f d> HTMLColor
<li f d> Blend
<li f d> operator string
</li></class>
<class name="RGBAf">
<li c d> From luma, RGBA
<li f d> operator = (RGBA, int)
<li f > operator = (luma)
<li f d> operator ==
<li f d> operator !=
<li f d> operator RGBA
<li f d> Convert
<li f d> Luminance
<li f > AccurateLuminance
<li f d> Blend
<li f > operator string
</li></class>
<class name="SizeController">
<li q> Tiling
<li f d> CalculateSize
<li f d> CalculateOffset
<li f d> CalculateArea
<li f d> CalculateSize
<li f d> GetTiling
<li m d> Horizontal
<li m d> Vertical
<li m d> Place
</li></class>
<class name="TextureSource">
<li f d> GetID
<li f q> GetImageSize
<li f d> GetCoordinates
<li f q> IsPartial
</li></class>
<class name="Texture">
<li c d> Empty
<li c d> Regular
<li c d> Atlas
<li c d> From image
<li c d> Copy and move constructor
<li f d> Swap
<li f d> Set (image, texture and info)
<li f d> GetOD
<li f d> GetImageSize
<li f d> GetCoordinates
<li f d> Destroy
<li f d> Release
</li></class>
<class name="TextureImage">
<pre>Solid drawable image based on a texture</pre>
</class>
<class name="Bitmap" inherits="Image, -Texture, TextureSource, RectangularAnimation, RectangularAnimationProvider">
<li d> Move semantics
<li f d> Duplicate
<li f d> CreateAnimation
<li f d> ReleaseData
<li f d> HasTexture
<li f d> Assign (image, bytes)
<li f > Assign (containers::image?)
<li f d> Assume (image, bytes)
<li f d> Assume (containers::image)
<li f d> Resize
<li f d> operator ()
<li f d> Get
<li f d> GetBytesPerPixel
<li f d> GetMode
<li f d> GetSize
<li f > GetTotalSize
<li f d> Prepare
<li f d> Discard
<li f d> ImportPNG
<li f d> ImportJPG
<li f d> ImportBMP
<li f d> Import
<li f d> ExportPNG
<li f d> ExportJPG
<li f d> ExportBMP
<li f d> Export
<li f > Blur
<li f > Shadow
<li f > Grayscale
<li f > Resample
<li f d> StripTransparency
<li f d> StripRGB
<li f d> CreateLinearAtlas
<li f d> CreateAtlasImages
</li></class>
<class name="Drawable">
<li f d> Draw
</li></class>
<class name="SizelessDrawable">
<li f d> DrawIn
<li f d> CalculateSize
</li></class>
<class name="RectangularDrawable" inherits="Drawable, SizelessDrawable">
<li f d> Draw
<li f d> DrawStretched
<li f d> DrawRotated
<li f d> DrawIn
<li f d> GetSize
</li></class>
<class name="Image" inherits="RectangularDrawable, TextureSource" done>
</class>
<class name="Animation" inherits="Drawable, Gorgon::Animation::Base" done>
</class>
<class name="SizelessAnimation" inherits="SizelessDrawable, Gorgon::Animation::Base" done>
</class>
<class name="RectangularAnimation" inherits="Drawable, Gorgon::Animation::Base" done>
</class>
<class name="AnimationProvider" inherits="Gorgon::Animation::Provider" done>
<li f d> CreateAnimation
</li></class>
<class name="SizelessAnimationProvider" inherits="Gorgon::Animation::Provider" done>
<li f d> CreateAnimation
</li></class>
<class name="RectangularAnimationProvider" inherits="Gorgon::Animation::Provider" done>
<li f d> CreateAnimation
</li></class>
<class name="TextureAnimation">
<li f d> Add / Insert / Own
<li f d> begin / end
<li f d> Clear
<li f d> CreateAnimation
<li f d> Duplicate
<li f d> FrameAt
<li f d> FrameIndexAt
<li f d> GetCount
<li f d> GetDuration (total, frame)
<li f d> GetSize
<li f d> GetImageAt
<li f d> ReleaseAll
<li f d> Remove
<li f d> StartOf
</li></class>
<class name="TextureTarget">
<li d> DrawMode (partial)
<li f d> Draw (using vertex coords, using vertex and texture coords)
<li f d> Draw (tiling)
<li f d> Clear
<li f d> GetTargetSize
<li f d> GetDrawMode
<li f d> SetDrawMode
</li></class>
<class name="Layer" inherits="Gorgon::Layer, TextureTarget">
<li f d> Draw
<li f d> Draw (tiled)
<li f d> Clear
<li f d> Render
<li f d> GetDrawMode
<li f d> SetDrawMode
<li f d> SetColor
<li f d> GetTargetSize
<task>Move surface to cpp</task>
</li></class>
<class name="Pointer" inherits="Gorgon::Graphics::Drawable">
<li f d> Draw
<li f d> GetImage
<li f d> SetImage
<li f d> HasImage
<li f d> RemoveImage
<li f d> Assume
<li f d> Release
</li></class>
<class name="PointerStack">
<li f d> Add
<li f d> Assume
<li f d> Exists
<li f d> Set
<li f d> Reset
<li f d> Current
<li f d> IsValid
</li></class>
<class name="CustomShadedLayer" inherits="Gorgon::Layer, TextureTarget">
<pre>Requires packaged shader</pre>
</class>
<class name="TransformableLayer" inherits="Gorgon::Layer, TextureTarget, Transformable">
<pre>This might be integrated with all layers similar to offset</pre>
</class>
<class name="SimpleShader">
<task>Replace uint32 with GL::Texture</task>
<li f d> SetVertexCoords
<li f d> SetTextureCoords
<li f d> SetDiffuse
</li></class>
<class name="MaskedShader">
<li f d> SetVertexCoords
<li f d> SetTextureCoords
<li f d> SetDiffuse
<li f q> SetMask
</li></class>
<class name="MaskedTintShader">
<li f d> SetVertexCoords
<li f d> SetTextureCoords
<li f d> SetDiffuse
<li f d> SetTint
<li f q> SetMask
</li></class>
</namespace>
<namespace name="GL">
<li f d> GenerateTexture
<li f > UpdateTexture
<li f > DestroyTexture
<li f d> SetupContext
<li f d> Resize
<li f d> Clear
</li><br>
<class name="Shader">
</class>
</namespace>
</module>
<module optional name="Audio">
<namespace name="Listener">
<li f > GetPosition
<li f > Move
<li f > SetSpeed
<li f > SetAcceleration
<li f > AutoCalculate
</li>
</namespace>
<li f > SetMeterConversion
<li f > GetMeterConversion
<li f > GetVolume
<li f > SetVolume
</li>
</module>
<module optional name="Multimedia">
</module>
<module name="Animation">
</module>
<module name="Resource">
</module>
<module name="Input">
<class name="File"> </class>
<class name="Blob"> </class>
<class name="Data"> </class>
<class name="DataTable"> </class>
<class name="DataItem"> </class>
<class name="Folder"> </class>
<class name="Font"> </class>
<class name="FontTheme ?"> </class>
<class name="Image"> </class>
<class name="Pointer"> </class>
<class name="Sound"> </class>
<class name="Link"> </class>
<class name="Line"> </class>
<class name="Rectange"> </class>
<class name="Region"> </class>
<class name="SizableObject"> </class>
<class name="Placeholder"> </class>
</module>
</section>
<section name="Supportive modules">
<module name="Filesystem">
<namespace name="Filesystem">
<li f d> CreateDirectory
<li f d> IsFile
<li f d> IsDirectory
<li f d> IsExists
<li f d> IsWritable
<li f d> Cononical
<li f > TryCanonoicalize
<li f d> CurrentDirectory
<li f d> IsHidden
<li f > IsReadOnly
<li f d> Relative
<li f d> ChangeDirectory
<li f d> Join
<li f d> GetFilename
<li f d> GetDirectory
<li f > ConvertToNative
<li f > ConvertFromNative
<li f > ConvertToURI
<li f d> Copy
<li f d> Copy (vector)
<li f d> Copy (iterator)
<li f d> Move
<li f > Move (vector)
<li f > Move (iterator)
<li f d> Delete
<li f > Delete (vector)
<li f > Delete (iterator)
<li f > Trash
<li f > Trash (vector)
<li f > Trash (iterator)
<li f d> ExeDirectory
<li f d> ExePath
<li f > ExeFilename
<li f d> StartupDirectory
<li f > FreeSpace
<li f > TotalSpace
<li f > EntryPoints
<li f > MakeReadonly
<li f > MakeHidden
<li f d> Size
<li f > Size (directory)
<li f d> Save
<li f d> Load
<li f > IsRemovable
<li f > IsNetwork
<li f > DriveType
<li f q> LocateResource
</li><br>
<class name="EntryPoint" done>
<li m d> Path
<li m d> Readable
<li m d> Writable
<li m d> Name
</li></class>
<class name="DirectoryIterator" done>
<pre>Standard iterator</pre>
</class>
<class name="DirectoryListing" done>
<li f > begin
<li f > end
</li></class>
</namespace>
</module>
<module name="Time">
<namespace name="Time">
<li f d> GetDate
<li f > GetTime
<li f d> FrameStart
<li f d> DeltaTime
<li f > Timeout
<li f > Interval
<li f > Cancel
<li f > LocalTimezone
</li><br>
<class name="Timer">
<li f d> Start
<li f d> Tick
<li f d> Get
<li f d> Set
<li f > ShowDialog
<li sf d> operator << (ostream)
</li></class>
<class name="Date">
<li m d> Millisecond
<li m d> Second
<li m d> Minute
<li m d> Hour
<li m d> Day
<li m d> Month
<li m d> Year
<li m d> Timezone
<li m d> WeekDay
<li f d> AddDays
<li f d> AddMonths
<li f d> AddYears
<li f d> AddSeconds
<li f d> AddMinutes
<li f d> AddHours
<li f d> Date_En
<li f d> ISODate
<li f d> ISODateTime
<li f d> MonthName_En
<li f d> ShortMonthName_En
<li f d> WeekdayName_En
<li f d> ShortWeekdayName_En
<li f d> Time
<li f d> ShortTime
<li f d> Timezone_GMT
<li f d> IsSet
<li f d> Unset
<li f > Normalize
<li f d> Save
<li f d> Load
<li f d> Parse
<li f > Timestamp
<li s f d> Now
<li s f r> LocalTimezone
</li>
</class>
</namespace>
</module>
<module name="Logging">
<namespace name="utils">
<class name="Logger">
<li f d> InitializeConsole
<li f d> InitializeStream
<li f d> InitializeFile
<li f d> Cleanup
<li f d> SetWidth
<li f d> operator <<
<li f d> Log
<li f d> SetSection
<li f d> GetSection
<li f d> SetMarkTime
<li f d> GetMarkTime
<li f d> SetMarkDate
<li f d> GetMarkDate
<li f d> EnableColor
<li f d> ForceColor
<li f d> DisableColor
<li f d> SetColorEnabled
<li f d> IsColorEnabled
<li f d> IsColorFunctional
</li></class>
</namespace>
</module>
<module name="Containers">
<namespace name="Containers">
<class name="Collection">
<li c > Filling constructor (use init list)
<li c d> Move constructor
<li f d> operator = (move assignment)
<li f d> Swap
<li f d> Duplicate
<li f d> GetCount
<li f d> GetSize
<li f d> Add (ptr, ref)
<li f d> Add (multiple items)
<li f d> AddNew
<li f d> Push (ptr, ref)
<li f d> Pop
<li f d> Insert (index, ref)
<li f > Insert (ptr)
<li f d> InsertNew
<li f d> MoveBefore (index, ref)
<li f > MoveBefore (ptr)
<li f d> Remove (index, ref, ptr)
<li f d> Delete (index, ref, ptr)
<li f d> Clear
<li f d> Collapse
<li f d> DeleteAll
<li f d> Destroy
<li f d> Reserve
<li f d> Find (ref, ptr) (const, non-const)
<li f d> FindLocation (ref, ptr)
<li f d> Sort (with, without predicate)
<li f d> Get
<li f d> operator []
<li f d> begin
<li f d> end
<li f d> First
<li f d> Last
</li></class>
<class name="GarbageCollection" inherits="Collection" done>
<li f d> Collect
</li></class>
<class name="Hashmap">
<li c d> Filling constructor
<li c d> Move constructor
<li f d> operator = (move assignment)
<li f d> Swap
<li f d> Duplicate
<li f d> GetCount
<li f > GetSize
<li f d> Add (ptr, ref) (with, without key)
<li f > Add (multiple items)
<li f > AddNew
<li f d> Remove (index, ref, ptr)
<li f d> Delete (index, ref, ptr)
<li f > Clear
<li f d> Collapse
<li f d> DeleteAll
<li f d> Destroy
<li f d> Find (key) (const, non-const)
<li f d> Exists
<li f d> operator []
<li f d> begin
<li f d> end
<li f d> First
<li f d> Last
</li></class>
<class name="Image">
<li c d> Empty
<li c d> Resizing
<li c d> Move
<li f d> operator = (move assignment)
<li f d> Swap
<li f d> Duplicate
<li f d> Resize
<li f d> Assign (with/without set)
<li f d> Assume (with/without set)
<li f d> Release
<li f d> Clean
<li f d> Destroy
<li f d> RawData (const/non const)
<li f d> operator ()
<li f d> Get
<li f d> GetSize
<li f d> GetTotalSize
<li f d> GetMode
<li f d> GetBytesPerPixel
<li f d> ForeachPixel
</li></class>
<class name="Wave">
<class name="Sample">
<task>Make channels a debug only feature</task>
<li f d> Channel
<li f d> operator []
</class>
<li c d> Empty
<li c d> Resizing
<li c d> Move
<li f d> operator = (move assignment)
<li f d> Swap
<li f d> Duplicate
<li f d> Resize
<li f d> Assign (with/without set)
<li f d> Assume (with/without set)
<li f d> Release
<li f d> Clean
<li f d> Destroy
<li f d> RawData (const/non const)
<li f d> operator ()
<li f d> Get
<li f d> GetSize
<li f d> GetBytes
<li f d> GetChannelCount
<li f d> GetSampleRate
<li f d> SetSampleRate
<li f d> begin
<li f d> end
</li></class>
</namespace>
</module>
<module name="Encoding">
<class name="LZMA">
<li f d> Encode
<li f d> Decode
<li f d> PropertySize
<li m d> UseUncompressedSize
</li></class>
<class name="PNG">
<li f d> Encode
<li f d> Decode
</li></class>
<class name="JPG">
<li f d> Encode
<li f d> Decode
</li></class>
<li f q> URIEncode
<li f q> URIDecode
</li><br>
</module>
<module name="Geometry">
<class name="Point">
<li c d> From string
<li f d> operator string
<li s f d> FromVector
<li s f d> Parse
<li f d> operator -
<li f d> operator +
<li f d> operator * (point, value)
<li f d> operator * (size)
<li f d> operator / (point, value)
<li f d> operator / (size)
<li f d> operator +=, -=
<li f d> operator *=, /= (value)
<li f > operator *=, /= (size)
<li f d> Distance
<li f d> Angle
<li f d> Slope
<li f q> Compare
<li f d> operator ==
<li f d> operator !=
<li f d> Move
<li s f > Max
<li s f d> operator >>
<li s f d> operator <<
<li s f d> Translate
<li s f d> Scale
<li s f > Scale (size)
<li s f d> Rotate
<li s f d> SkewX/SkewY
<li s f d> ReflectX/ReflectY
<li s f > Transform
<li s f d> Round
</li></class>
<class name="Size">
<li c d> From string
<li c d> From point
<li f d> operator string
<li s f d> Parse
<li f d> operator ==
<li f d> operator !=
<li f d> operator +
<li f d> operator -
<li f d> operator +=
<li f d> operator -=
<li f d> operator *=
<li f d> operator /=
<li f d> operator point
<li f d> Cells
<li f d> Area
<li f d> IsValid
<li f > Resize
<li s f d> Max
<li s f d> operator >>
<li s f d> operator <<
<li s f d> Scale
<li s f > Transform
<li s f > Round
</li></class>
<class name="Rectangle">
<li c d> From string
<li c d> From bounds
<li f d> operator string
<li f d> operator bounds
<li f d> Parse
<li f d> Right
<li f d> Bottom
<li f d> SetRight
<li f d> SetBottom
<li f d> Resize
<li f d> Move
<li f d> Center
<li f d> TopLeft
<li f d> TopRight
<li f d> BottomLeft
<li f d> BottomRight
<li f d> GetSize
<li f d> operator ==
<li f d> operation !=
<li f d> operator +, - (point, size)
<li f d> operator *,/ (size, constant)
<li f > IsValid
<li s f > operator >>
<li s f d> operator <<
<li s f d> IsInside
<li s f > Translate
<li s f > Scale
<li s f > Scale (size)
<li s f > Rotate
<li s f > Round
</li></class>
<class name="Bounds">
<li c d> From string
<li f d> operator string
<li f > Parse
<li f d> Width
<li f d> Height
<li f d> SetWidth
<li f d> SetHeight
<li f d> Resize
<li f d> Move
<li f d> Center
<li f d> TopLeft
<li f d> TopRight
<li f d> BottomLeft
<li f d> BottomRight
<li f d> GetSize
<li f d> operator ==
<li f d> operation !=
<li f d> operator |
<li f d> operator &
<li f d> operator +, - (point)
<li f > operator +, - (size)
<li f d> operator *,/ (size, constant)
<li f d> Normalize
<li s f d> operator >>
<li s f d> operator <<
<li s f d> Intersect
<li s f d> Union
<li s f d> IsColliding
<li s f d> IsInside
<li s f d> Translate
<li s f d> Scale
<li s f d> Scale (size)
<li s f d> Rotate
<li s f d> SkewX/SkewY
<li s f > ReflectX/ReflectY
<li s f > Transform
<li s f > Round
</li></class>
<class name="Margins">
<li c > From string
<li f d> operator string
<li f > Parse
<li f d> TotalX
<li f d> TotalY
<li f d> Horizontal
<li f d> Vertical
<li f d> operator +
<li f d> operator -
<li f d> operator ==
<li f d> operator !=
<li f q> AddToLeft (should be updated for box model)
<li f q> AddToTop (should be updated for box model)
<li f q> AddToRight (should be updated for box model)
<li f q> AddToBottom (should be updated for box model)
<li f d> TopLeft
<li s f d> opeartor + (size, bounds)
<li s f d> operator >>
<li s f d> operator <<
<li s f > Round
</li></class>
</module>
<module name="IO">
<li f d> ReadEnum32
<li f d> ReadInt32
<li f d> ReadUInt32
<li f d> ReadInt16
<li f d> ReadUInt16
<li f d> ReadInt8
<li f d> ReadUInt8
<li f d> ReadFloat
<li f d> ReadDouble
<li f d> ReadBool
<li f d> ReadString
<li f d> ReadArray
<li f d> ReadGuid
<li f d> WriteEnum32
<li f d> WriteInt32
<li f d> WriteUInt32
<li f d> WriteInt16
<li f d> WriteUInt16
<li f d> WriteInt8
<li f d> WriteUInt8
<li f d> WriteFloat
<li f d> WriteDouble
<li f d> WriteBool
<li f d> WriteStringWithSize
<li f d> WriteString
<li f q> WriteArray
<li f q> WriteVector
<li f d> WriteGuid
</module>
<module name="Template meta programming">
<li d> DefineStruct
<li d> DefineStructMembersWithName
<li d> DefineEnumStrings
<li d> DefineEnumStringsCM (class member)
<li d> DefineEnumStringsTN (with typename)
<li d> DefineEnumStringsCMTN (class member with typename)
</li>
<namespace name="TMP">
<li d> Sequence
<li d> Generate
<li d> RemoveRValueReference
<li d> IsStreamable
</li><br>
<class name="FunctionTraits">
<li d> ReturnType
<li d> Arity
<li d> IsMember
<li d> Arguments<int>: Type
</li></class>
<class name="RTTI">
<li f d> IsPointer
<li f d> IsReference
<li f d> IsConstant
<li f d> IsSameType
<li f d> operator ==
<li f d> operator !=
<li f d> operator type_info
<li f d> GetSize
<li f d> TypeInfo
<li f d> Name
</li></class>
<class name="RRTS" inherits="RTTI">
<li f d> Duplicate
<li f d> Clone
<li f d> Delete
</li></class>
<class name="RTTH">
<li m d> NormalType
<li m d> ConstType
<li m d> RefType
<li m d> ConstRefType
<li m d> PtrType
<li m d> ConstPtrType
</li></class>
</li></namespace>
</module>
<module name="Compiler">
<li d> ASSERT
<li d> ASSERT_ALL
<li d> ASSERT_DUMP
<li f d> ASSERT_FALSE
<li f d> NotImplemented
<namespace name="Utils">
<li f d> GetTypeName
<li d> WEAKINIT
</li></namespace>
</module>
<module name="Event">
<li c d> Empty/filling
<li c d> Move
<li f > operator = move assignment
<li f > Swap
<li f > Register (free, member function)
<li f > Unregister
<li f > operator ()
</li></module><br/>
<module name="Console">
<li f d> IsColorSupported
<li f d> IsStyleSupported
<li f d> SetColor
<li f d> SetBackground
<li f d> Reset
<li f d> SetBold
<li f d> SetUnderline
<li f d> SetItalic
<li f d> SetNegative
<li f d> GetWidth
<li f d> GotoXY
<li f d> EnableCaret
<li f d> DisableCaret
</li></namespace>
</module><br/>
<module name="String">
<namespace name="String">
<li f d> Trim
<li f d> TrimStart
<li f d> TrimEnd
<li f > TrimInplace
<li f > TrimStartInplace
<li f > TrimEndInplace
<li f d> To
<li f d> From
<li f > Parse
<li f d> ToLower
<li f d> ToUpper
<li f > ToLowerInplace
<li f > ToUpperInplace
<li f d> Replace
<li f > ReplaceInplace
<li f d> Extract
<li f d> Extract_UseQuotes
<li f > Split
<li f > TrimQuotes
<li f > TrimQuotesInplace
<li f d> Concat
</li><br>
<class name="CaseInsensitiveLess" done></class><br>
<class name="Tokenizer" done>
<pre>Forward iterator that tokenizes a string from the given delimeter.</pre>
</class>
</namespace>
</module>
<module name="Others">
<class name="Any">
<li c d> Empty / Copy / Move constructor
<li c d> Assumed / Duplicated
<li f d> TypeInfo
<li f d> TypeServices
<li f d> operator = (copy/move)
<li f d> operator = (value)
<li f d> Swap
<li f d> Set
<li f d> Clear
<li f d> GetRaw
<li f d> SetRaw
<li f d> AssumeRaw
<li f d> Disown
<li f d> SetType
<li f d> Get
<li f d> GetTypeName
<li f d> UnsafeGet
<li f d> TypeCheck
<li f d> IsSameType
<li f d> IsPointer
<li f d> Pointer
<li f d> operator ==
<li f d> operator !=
<li f d> IsSet
</li></class>
<class name="SGuid">
<li c d> Empty constructor
<li c d> Create new constructor (uses tag)
<li c d> Filling constructor (using array, long long, parts, stream)
<li f d> operator ==, !=, <
<li f d> Set
<li f d> New
<li f d> operator string
<li f d> Load
<li f d> Save
<li f d> LoadLong (old full guid)
<li f d> IsEmpty
<li f d> operator bool
<li s m d> Empty
</li></class>
<namespace name="Threading">
<li f d> RunAsync
<li f d> RunInParallel
</li></namespace>
</module>
</section>
<section name="Additional modules">
<module name="Data services">
</module>
<module name="CGI">
</module>
<module name="Effects">
</module>
<module name="Widgets">
</module>
<module name="Network">
</module>
<module name="Scripting">
</module>
</section>
<section name="Gaming">
<module name="World">
</module>
<module name="Physics">
</module>
<module name="Actors">
</module>
<module name="Additional shaders">
</module>
</section>
</my>