mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-12 03:01:17 +00:00
Add AI_SUMMARY.md
This commit is contained in:
parent
03f8c0fe05
commit
611fc0619c
209
AI_SUMMARY.md
Normal file
209
AI_SUMMARY.md
Normal file
@ -0,0 +1,209 @@
|
||||
# View Management and Rendering
|
||||
|
||||
## ViewManager
|
||||
- **`ViewManager::ViewManager(Tgl::Renderer*, Tgl::Group*, const OrientableROI*)`**: Constructor.
|
||||
- **`ViewManager::IsBoundingBoxInFrustum(const BoundingBox&)`**: Checks if a bounding box is within the view frustum.
|
||||
- **`ViewManager::ProjectedSize(const BoundingSphere&)`**: Calculates projected screen size of a bounding sphere.
|
||||
- **`ViewManager::Update(float, float)`**: Updates visibility and LOD for all ROIs.
|
||||
- **`ViewManager::CalculateFrustumTransformations()`**: Calculates frustum planes and vertices.
|
||||
- **`ViewManager::UpdateViewTransformations()`**: Transforms frustum vertices into world space.
|
||||
- **`ViewManager::SetFrustrum(float, float, float)`**: Sets frustum parameters (FOV, near, far).
|
||||
- **`ViewManager::SetResolution(int, int)`**: Sets screen resolution.
|
||||
- **`ViewManager::SetPOVSource(const OrientableROI*)`**: Sets the point of view.
|
||||
- **`ViewManager::Pick(Tgl::View*, unsigned long, unsigned long)`**: Ray picking to find a `ViewROI`.
|
||||
|
||||
## ViewROI
|
||||
- **`ViewROI::ViewROI(Tgl::Renderer*, ViewLODList*)`**: Constructor.
|
||||
- **`ViewROI::GetGeometry()`**: Returns `Tgl::Group`.
|
||||
- **`ViewROI::UpdateWorldData(const Matrix4&)`**: Updates world transform.
|
||||
- **`ViewROI::SetLocalTransform(const Matrix4&)`**: Sets local transform.
|
||||
- **`ViewROI::IntrinsicImportance()`**: Returns intrinsic importance (default 0.5).
|
||||
|
||||
## ViewLOD
|
||||
- **`ViewLOD::ViewLOD(Tgl::Renderer*)`**: Constructor.
|
||||
- **`ViewLOD::GetMeshBuilder()`**: Returns `Tgl::MeshBuilder`.
|
||||
- **`ViewLOD::AveragePolyArea()`**: Placeholder.
|
||||
- **`ViewLOD::NVerts()`**: Placeholder.
|
||||
- `m_unk0x08`: Flags, tested by `GetUnknown0x08Test4()` and `GetUnknown0x08Test8()`.
|
||||
|
||||
## ViewLODList
|
||||
- **`ViewLODList::AddRef()`**: Increments refcount.
|
||||
- **`ViewLODList::Release()`**: Decrements refcount, deletes if zero.
|
||||
|
||||
## ViewLODListManager
|
||||
- **`ViewLODListManager::Create(const ROIName&, int)`**: Creates `ViewLODList`.
|
||||
- **`ViewLODListManager::Lookup(const ROIName&)`**: Retrieves `ViewLODList`.
|
||||
- **`ViewLODListManager::Destroy(ViewLODList*)`**: Destroys `ViewLODList`.
|
||||
|
||||
## OrientableROI
|
||||
- **`OrientableROI::SetLocalTransform(const Matrix4&)`**: Updates transforms.
|
||||
- **`OrientableROI::UpdateWorldData(const Matrix4&)`**: Updates world data.
|
||||
- **`OrientableROI::GetLocal2World()`**: Returns local-to-world matrix.
|
||||
- **`OrientableROI::GetWorldPosition()`**: Returns world position.
|
||||
- **`OrientableROI::GetWorldDirection()`**: Returns direction vector.
|
||||
- **`OrientableROI::GetWorldUp()`**: Returns up vector.
|
||||
- `m_unk0xd8`: Internal flags.
|
||||
|
||||
# LEGO-Specific Classes
|
||||
|
||||
## LegoROI
|
||||
- **`LegoROI::LegoROI(Tgl::Renderer*)`**: Constructor.
|
||||
- **`LegoROI::Read(...)`**: Reads from `LegoStorage`.
|
||||
- **`LegoROI::FindChildROI(const LegoChar*, LegoROI*)`**: Recursive child search.
|
||||
- **`LegoROI::SetFrame(LegoAnim*, LegoTime)`**: Sets transform from animation.
|
||||
- **`LegoROI::IntrinsicImportance()`**: Returns 0.5.
|
||||
- **`LegoROI::UpdateWorldBoundingVolumes()`**: Updates bounding sphere and box.
|
||||
- `m_name`, `m_entity`, `m_sphere`: Name, entity pointer, bounding sphere.
|
||||
|
||||
## LegoLOD
|
||||
- **`LegoLOD::LegoLOD(Tgl::Renderer*)`**: Constructor.
|
||||
- **`LegoLOD::Read(...)`**: Reads and creates meshes.
|
||||
- **`LegoLOD::Clone(Tgl::Renderer*)`**: Clones the LOD.
|
||||
- **`LegoLOD::FUN_100aacb0(...)`**: Sets color for non-textured meshes.
|
||||
- **`LegoLOD::FUN_100aad00(...)`**: Sets texture.
|
||||
- `m_melems`: Mesh array.
|
||||
- `m_numMeshes`, `m_numPolys`: Mesh and polygon counts.
|
||||
|
||||
## LegoEntity
|
||||
- **`LegoEntity::Create(MxDSAction&)`**: Initializes entity.
|
||||
- **`LegoEntity::SetROI(LegoROI*, MxBool, MxBool)`**: Associates ROI.
|
||||
- **`LegoEntity::SetWorldTransform(...)`**: Sets transform.
|
||||
- **`LegoEntity::SetWorldSpeed(MxFloat)`**: Sets speed.
|
||||
- **`LegoEntity::ParseAction(char*)`**: Parses actions.
|
||||
- **`LegoEntity::ClickSound(MxBool)`**: Plays click sound.
|
||||
- **`LegoEntity::ClickAnimation()`**: Plays click animation.
|
||||
- **`LegoEntity::SwitchVariant()`**: Switches model variant.
|
||||
- `m_roi`, `m_worldLocation`, `m_worldDirection`, `m_worldUp`, `m_worldSpeed`, `m_type`, `m_actionType`, `m_flags`: Entity fields.
|
||||
|
||||
## Lego3DManager
|
||||
- **`Lego3DManager::Create(CreateStruct&)`**: Creates renderer/device/view.
|
||||
- **`Lego3DManager::Destroy()`**: Destroys renderer/device/view.
|
||||
- **`Lego3DManager::Render(double)`**: Renders scene.
|
||||
- **`Lego3DManager::SetFrustrum(float, float, float)`**: Sets frustum.
|
||||
|
||||
## Lego3DView
|
||||
- **`Lego3DView::Create(...)`**: Creates view and `ViewManager`.
|
||||
- **`Lego3DView::Add(ViewROI&)`**: Adds ROI.
|
||||
- **`Lego3DView::Remove(ViewROI&)`**: Removes ROI.
|
||||
- **`Lego3DView::SetPointOfView(ViewROI&)`**: Sets camera ROI.
|
||||
- **`Lego3DView::Moved(ViewROI&)`**: Updates camera if needed.
|
||||
- **`Lego3DView::Render(double)`**: Renders scene.
|
||||
- **`Lego3DView::Pick(unsigned long, unsigned long)`**: Picks ROI.
|
||||
- `m_pViewManager`: Pointer to `ViewManager`.
|
||||
|
||||
## LegoView
|
||||
- Base class for `Lego3DView`. Manages scene and camera.
|
||||
|
||||
## LegoView1
|
||||
- Subclass of `LegoView`. Adds lighting.
|
||||
|
||||
## LegoNavController
|
||||
- **`LegoNavController::SetTargets(int, int, MxBool)`**: Sets targets.
|
||||
- **`LegoNavController::CalculateNewPosDir(...)`**: Calculates new position/direction.
|
||||
|
||||
## LegoCameraController
|
||||
- Camera control using mouse and `LegoNavController`.
|
||||
|
||||
## LegoPointOfViewController
|
||||
- Abstracts point-of-view control. Uses `Lego3DView` and `LegoNavController`.
|
||||
|
||||
## LegoMouseController
|
||||
- Handles mouse input (clicks, drags, releases).
|
||||
|
||||
# LEGO Game Management
|
||||
|
||||
## LegoOmni
|
||||
- **`LegoOmni::Create(MxOmniCreateParam&)`**: Initializes subsystems.
|
||||
- **`LegoOmni::Start(MxDSAction*)`**: Starts an action.
|
||||
- **`LegoOmni::RegisterWorlds()`**: Registers game worlds.
|
||||
- **`LegoOmni::FindWorld(const MxAtomId&, MxS32)`**: Finds world.
|
||||
- **`LegoOmni::FindROI(const char*)`**: Finds ROI.
|
||||
|
||||
## LegoWorld
|
||||
- **`LegoWorld::Create(MxDSAction&)`**: Creates world.
|
||||
- **`LegoWorld::ReadyWorld()`**: Prepares world.
|
||||
- **`LegoWorld::Enable(MxBool)`**: Enables/disables world.
|
||||
- **`LegoWorld::Add(MxCore*)`**, **`LegoWorld::Remove(MxCore*)`**: Adds/removes objects.
|
||||
- **`LegoWorld::Find(const char*, const char*)`**: Finds object.
|
||||
- **`LegoWorld::PlaceActor(...)`**: Places actor on path.
|
||||
|
||||
## LegoWorldList
|
||||
- List of all worlds, managed by `LegoOmni`.
|
||||
|
||||
## LegoGameState
|
||||
- **`LegoGameState::Save(MxULong)`**, **`LegoGameState::Load(MxULong)`**: Save/load state.
|
||||
- **`LegoGameState::SwitchArea(Area)`**: Switches area.
|
||||
- `m_currentAct`, `m_currentArea`, `m_previousArea`: Area tracking.
|
||||
|
||||
## LegoState
|
||||
- Base class for various game element states.
|
||||
|
||||
# Media and Animation
|
||||
|
||||
## LegoAnim
|
||||
- **`LegoAnim::Read(...)`**: Reads animation.
|
||||
- `m_duration`, `m_modelList`: Duration and actors.
|
||||
|
||||
## LegoAnimNodeData
|
||||
- **`LegoAnimNodeData::CreateLocalTransform(LegoFloat, Matrix4&)`**: Local transform at time.
|
||||
|
||||
## LegoAnimKey
|
||||
- Base class for animation keys.
|
||||
- `m_time`, `m_flags`: Time and flags.
|
||||
|
||||
## LegoTranslationKey, LegoRotationKey, LegoScaleKey, LegoMorphKey
|
||||
- Specialized animation keys.
|
||||
|
||||
# Other Utilities
|
||||
|
||||
## LegoStorage, LegoMemory, LegoFile
|
||||
- Abstract base and concrete storage classes.
|
||||
|
||||
## BoundingBox, BoundingSphere
|
||||
- Basic bounding volume structures.
|
||||
|
||||
## LegoVertex, LegoColor, LegoSphere, LegoBox, LegoMesh
|
||||
- Geometry structures.
|
||||
|
||||
## LegoTree, LegoTreeNode, LegoTreeNodeData
|
||||
- Tree structures.
|
||||
|
||||
## LegoContainer<T>, LegoTextureContainer
|
||||
- Containers for collections.
|
||||
|
||||
## LegoTextureInfo
|
||||
- Texture metadata.
|
||||
|
||||
## LegoNamedPartList, LegoNamedPart
|
||||
- Named LEGO parts.
|
||||
|
||||
## LegoPathBoundary
|
||||
- Path boundary, subclass of `LegoWEGEdge`.
|
||||
|
||||
## LegoPathController
|
||||
- Manages paths.
|
||||
|
||||
## LegoPathEdgeContainer
|
||||
- Edge list for paths.
|
||||
|
||||
## LegoPathStruct
|
||||
- Path triggers.
|
||||
|
||||
## LegoPathStructNotificationParam
|
||||
- Notification parameter for path triggers.
|
||||
|
||||
# Audio
|
||||
|
||||
## LegoCacheSound, LegoCacheSoundManager
|
||||
- Caching and managing sound effects.
|
||||
|
||||
## LegoSoundManager
|
||||
- Sound management system.
|
||||
|
||||
## MxBackgroundAudioManager
|
||||
- Background music manager.
|
||||
|
||||
# Transitions
|
||||
|
||||
## MxTransitionManager
|
||||
- Handles world/area transitions.
|
||||
Loading…
Reference in New Issue
Block a user