World of Might and Magic
0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
|
#include <Vis.h>
Открытые атрибуты | |
Vis_SelectionList | default_list |
RenderVertexSoft | stru_200C |
RenderVertexSoft | stru_203C |
RenderVertexSoft | stru_206C |
RenderVertexSoft | stru_209C |
int | keyboard_pick_depth |
Log * | log = nullptr |
Vis::Vis | ( | ) |
См. определение в файле Vis.cpp строка 1202
Перекрестные ссылки RenderVertexSoft::flt_2C, keyboard_pick_depth, log, Engine_::IocContainer::ResolveLogger(), stru_200C, stru_203C, stru_206C, stru_209C, RenderVertexSoft::vWorldPosition, Vec3_float_::x, Vec3_float_::y и Vec3_float_::z.
bool Vis::PickKeyboard | ( | Vis_SelectionList * | list, |
Vis_SelectionFilter * | sprite_filter, | ||
Vis_SelectionFilter * | face_filter | ||
) |
См. определение в файле Vis.cpp строка 1247
Перекрестные ссылки Vis_SelectionList::create_object_pointers(), default_list, keyboard_pick_depth, LEVEL_Indoor, LEVEL_Outdoor, Vis_SelectionList::object_pointers, PickBillboards_Keyboard(), PickIndoorFaces_Keyboard(), PickOutdoorFaces_Keyboard(), sort_object_pointers(), uCurrentlyLoadedLevelType, Vis_SelectionList::Unique и Vis_SelectionList::uNumPointers.
Используется в Engine::PickKeyboard().
void Vis::PickBillboards_Keyboard | ( | float | pick_depth, |
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 1303
Перекрестные ссылки Vis_SelectionList::AddObject(), DoesRayIntersectBillboard(), is_part_of_selection(), RenderBillboard::object_pid, pBillboardRenderList, render, RenderBillboard::screen_space_z, RenderBillboardD3D::sParentBillboardID и VisObjectType_Sprite.
Используется в PickClosestActor() и PickKeyboard().
void Vis::PickIndoorFaces_Keyboard | ( | float | pick_depth, |
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 1571
Перекрестные ссылки Vis_SelectionList::AddObject(), Vis_ObjectInfo::depth, DetermineFacetIntersection(), BspRenderer::faces, is_part_of_selection(), IndoorCameraD3D::IsCulled(), BspRenderer::num_faces, Vis_ObjectInfo::object, OBJECT_BModel, Vis_ObjectInfo::object_pid, Vis_ObjectInfo::object_type, pBspRenderer, IndoorLocation::pFaces, pIndoor, pIndoorCameraD3D, BspFace::uFaceID и IndoorLocation::uNumFaces.
Используется в PickKeyboard().
void Vis::PickOutdoorFaces_Keyboard | ( | float | pick_depth, |
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 1601
Перекрестные ссылки Vis_SelectionList::AddObject(), DetermineFacetIntersection(), BLVFace::FromODM(), BSPModel::index, is_part_of_selection(), IsBModelVisible(), OBJECT_BModel, OutdoorLocation::pBModels, BSPModel::pFaces и pOutdoor.
Используется в PickKeyboard().
bool Vis::PickMouse | ( | float | fDepth, |
float | fMouseX, | ||
float | fMouseY, | ||
Vis_SelectionFilter * | sprite_filter, | ||
Vis_SelectionFilter * | face_filter | ||
) |
См. определение в файле Vis.cpp строка 1268
Перекрестные ссылки Vis_SelectionList::All, CastPickRay(), Vis_SelectionList::create_object_pointers(), default_list, LEVEL_Indoor, LEVEL_Outdoor, log, Vis_SelectionList::object_pointers, PickBillboards_Mouse(), PickIndoorFaces_Mouse(), PickOutdoorFaces_Mouse(), sort_object_pointers(), uCurrentlyLoadedLevelType, Vis_SelectionList::uNumPointers и Log::Warning().
Используется в Engine::PickMouse().
void Vis::PickBillboards_Mouse | ( | float | fPickDepth, |
float | fX, | ||
float | fY, | ||
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 231
Перекрестные ссылки Vis_SelectionList::AddObject(), DoesRayIntersectBillboard(), is_part_of_selection(), IsPointInsideD3DBillboard(), RenderBillboard::object_pid, pBillboardRenderList, render, RenderBillboard::screen_space_z, RenderBillboardD3D::sParentBillboardID и VisObjectType_Sprite.
Используется в PickMouse().
void Vis::PickIndoorFaces_Mouse | ( | float | fDepth, |
struct RenderVertexSoft * | pRay, | ||
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 305
Перекрестные ссылки Vis_ObjectInfo::depth, BspRenderer::faces, RenderVertexSoft::flt_2C, Intersect_Ray_Face(), is_part_of_selection(), IndoorCameraD3D::IsCulled(), BspRenderer::num_faces, Vis_ObjectInfo::object, OBJECT_BModel, Vis_ObjectInfo::object_pid, Vis_SelectionList::object_pool, Vis_ObjectInfo::object_type, pBspRenderer, IndoorLocation::pFaces, pIndoor, pIndoorCameraD3D, BspFace::uFaceID, IndoorLocation::uNumFaces, Vis_SelectionList::uNumPointers, IndoorCameraD3D::ViewTransform(), VisObjectType_Face, RenderVertexSoft::vWorldViewPosition и Vec3_float_::x.
Используется в DetermineFacetIntersection(), DoesRayIntersectBillboard() и PickMouse().
void Vis::PickOutdoorFaces_Mouse | ( | float | fDepth, |
struct RenderVertexSoft * | pRay, | ||
Vis_SelectionList * | list, | ||
Vis_SelectionFilter * | filter, | ||
bool | only_reachable | ||
) |
См. определение в файле Vis.cpp строка 359
Перекрестные ссылки Vis_SelectionList::AddObject(), BLVFace::FromODM(), BSPModel::index, Intersect_Ray_Face(), is_part_of_selection(), IsBModelVisible(), OBJECT_BModel, OutdoorLocation::pBModels, BSPModel::pFaces, pIndoorCameraD3D, pOutdoor, BLVFace::uAttributes, IndoorCameraD3D::ViewTransform(), VisObjectType_Face, RenderVertexSoft::vWorldViewPosition и Vec3_float_::x.
Используется в DetermineFacetIntersection(), DoesRayIntersectBillboard() и PickMouse().
bool Vis::is_part_of_selection | ( | void * | uD3DBillboardIdx_or_pBLVFace_or_pODMFace, |
Vis_SelectionFilter * | filter | ||
) |
См. определение в файле Vis.cpp строка 1324
Перекрестные ссылки MonsterStats::BelongsToSupertype(), LEVEL_Indoor, LEVEL_Outdoor, log, MONSTER_SUPERTYPE_UNDEAD, OBJECT_Actor, OBJECT_BLVDoor, OBJECT_Decoration, pActors, pBillboardRenderList, IndoorLocation::pFaceExtras, pIndoor, pLevelDecorations, render, ODMFace::sCogTriggeredID, uCurrentlyLoadedLevelType, BLVFaceExtra::uEventID, VisObjectType_Any, VisObjectType_Face, VisObjectType_Sprite и Log::Warning().
Используется в PickBillboards_Keyboard(), PickBillboards_Mouse(), PickIndoorFaces_Keyboard(), PickIndoorFaces_Mouse(), PickOutdoorFaces_Keyboard() и PickOutdoorFaces_Mouse().
bool Vis::DoesRayIntersectBillboard | ( | float | fDepth, |
unsigned int | uD3DBillboardIdx | ||
) |
См. определение в файле Vis.cpp строка 1418
Перекрестные ссылки CastPickRay(), Vis_SelectionList::create_object_pointers(), Vis_ObjectInfo::depth, GetPolygonCenter(), LEVEL_Indoor, Vis_SelectionList::object_pointers, pBillboardRenderList, PickIndoorFaces_Mouse(), PickOutdoorFaces_Mouse(), pViewport, render, RenderBillboard::screen_space_z, sort_object_pointers(), uCurrentlyLoadedLevelType, Vis_SelectionList::uNumPointers, Viewport::uScreen_BR_X, Viewport::uScreen_BR_Y, Viewport::uScreen_TL_X, Viewport::uScreen_TL_Y и vis_face_filter.
Используется в Render::GetActorsInViewport(), PickBillboards_Keyboard() и PickBillboards_Mouse().
Vis_ObjectInfo * Vis::DetermineFacetIntersection | ( | struct BLVFace * | face, |
unsigned int | a3, | ||
float | pick_depth | ||
) |
См. определение в файле Vis.cpp строка 36
Перекрестные ссылки CastPickRay(), Vis_SelectionList::create_object_pointers(), GetPolygonScreenSpaceCenter(), IsPolygonOccludedByBillboard(), LEVEL_Indoor, LEVEL_Outdoor, Vis_SelectionList::object_pointers, OutdoorLocation::pBModels, PickIndoorFaces_Mouse(), PickOutdoorFaces_Mouse(), pIndoor, pIndoorCameraD3D, pOutdoor, IndoorCameraD3D::Project(), IndoorLocation::pVertices, Vis_SelectionList::SelectionPointers(), sort_object_pointers(), SortVectors_x(), uCurrentlyLoadedLevelType, Vis_SelectionList::uNumPointers, IndoorCameraD3D::ViewTransform(), vis_face_filter, VisObjectType_Face, RenderVertexSoft::vWorldPosition, Vec3_float_::x, Vec3_float_::y и Vec3_float_::z.
Используется в PickIndoorFaces_Keyboard() и PickOutdoorFaces_Keyboard().
bool Vis::IsPolygonOccludedByBillboard | ( | struct RenderVertexSoft * | vertices, |
int | num_vertices, | ||
float | x, | ||
float | y | ||
) |
См. определение в файле Vis.cpp строка 132
Перекрестные ссылки IsPointInsideD3DBillboard(), pBillboardRenderList, render, RenderBillboard::screen_space_z, RenderBillboardD3D::sParentBillboardID и RenderVertexSoft::vWorldViewProjX.
Используется в DetermineFacetIntersection().
void Vis::GetPolygonCenter | ( | struct RenderVertexD3D3 * | pVertices, |
unsigned int | uNumVertices, | ||
float * | pCenterX, | ||
float * | pCenterY | ||
) |
См. определение в файле Vis.cpp строка 185
Перекрестные ссылки RenderVertexD3D3::pos, pVertices, SortVerticesByX(), SortVerticesByY(), Vec3_float_::x и Vec3_float_::y.
Используется в DoesRayIntersectBillboard().
void Vis::GetPolygonScreenSpaceCenter | ( | struct RenderVertexSoft * | vertices, |
int | num_vertices, | ||
float * | out_center_x, | ||
float * | out_center_y | ||
) |
См. определение в файле Vis.cpp строка 204
Перекрестные ссылки SortByScreenSpaceX(), SortByScreenSpaceY(), RenderVertexSoft::vWorldViewProjX и RenderVertexSoft::vWorldViewProjY.
Используется в DetermineFacetIntersection().
bool Vis::IsPointInsideD3DBillboard | ( | struct RenderBillboardD3D * | a1, |
float | x, | ||
float | y | ||
) |
См. определение в файле Vis.cpp строка 251
Перекрестные ссылки LODSprite::bitmap, LODFile_Sprites::pHardwareSprites, RenderVertexD3D3::pos, RenderBillboardD3D::pQuads, pSprites_LOD, RenderBillboardD3D::sParentBillboardID, Sprite::sprite_header, Sprite::texture, RenderBillboardD3D::texture, Sprite::uAreaHeight, Sprite::uAreaWidth, Sprite::uAreaX, Sprite::uAreaY, LODSpriteHeader::uHeight, LODFile_Sprites::uNumLoadedSprites, LODSpriteHeader::uWidth, Vec3_float_::x и Vec3_float_::y.
Используется в IsPolygonOccludedByBillboard() и PickBillboards_Mouse().
unsigned short Vis::PickClosestActor | ( | int | object_id, |
unsigned int | pick_depth, | ||
int | a4, | ||
int | a5, | ||
int | a6 | ||
) |
См. определение в файле Vis.cpp строка 403
Перекрестные ссылки Vis_SelectionFilter::at_ai_state, Vis_SelectionList::create_object_pointers(), Vis_SelectionFilter::no_at_ai_state, Vis_SelectionFilter::object_id, Vis_ObjectInfo::object_pid, Vis_SelectionList::object_pointers, Vis_SelectionFilter::object_type, PickBillboards_Keyboard(), Vis_SelectionFilter::select_flags, sort_object_pointers(), Vis_SelectionList::Unique, Vis_SelectionList::uNumPointers, Vis_static_sub_4C1944_stru_F8BDE8 и VisObjectType_Sprite.
Используется в stru319::FindClosestActor().
void Vis::_4C1A02 | ( | ) |
См. определение в файле Vis.cpp строка 427
Перекрестные ссылки RenderVertexSoft::flt_2C, stru_200C, stru_206C, RenderVertexSoft::vWorldPosition, Vec3_float_::x, Vec3_float_::y и Vec3_float_::z.
Используется в Application::Game::GameLoop() и PrepareWorld().
void Vis::SortVectors_x | ( | RenderVertexSoft * | pArray, |
int | start, | ||
int | end | ||
) |
См. определение в файле Vis.cpp строка 458
Перекрестные ссылки RenderVertexSoft::vWorldViewPosition и Vec3_float_::x.
Используется в DetermineFacetIntersection().
int Vis::get_object_zbuf_val | ( | Vis_ObjectInfo * | info | ) |
См. определение в файле Vis.cpp строка 494
Перекрестные ссылки Vis_ObjectInfo::depth, log, Vis_ObjectInfo::object_pid, Vis_ObjectInfo::object_type, VisObjectType_Face, VisObjectType_Sprite и Log::Warning().
Используется в get_picked_object_zbuf_val().
int Vis::get_picked_object_zbuf_val | ( | ) |
См. определение в файле Vis.cpp строка 517
Перекрестные ссылки default_list, get_object_zbuf_val(), Vis_SelectionList::object_pointers и Vis_SelectionList::uNumPointers.
Используется в Application::Game::EventLoop(), Engine::OnGameViewportClick(), Application::Game::OnPressSpace() и Mouse::UI_OnMouseLeftClick().
bool Vis::Intersect_Ray_Face | ( | struct RenderVertexSoft * | pRayStart, |
struct RenderVertexSoft * | pRayEnd, | ||
float * | pDepth, | ||
RenderVertexSoft * | Intersection, | ||
BLVFace * | pFace, | ||
signed int | pBModelID | ||
) |
См. определение в файле Vis.cpp строка 524
Перекрестные ссылки CheckIntersectBModel(), Plane_float_::dist, BLVFace::Invisible(), BLVFace::pFacePlane, BLVFace::Portal(), Plane_float_::vNormal, RenderVertexSoft::vWorldPosition, Vec3_float_::x, Vec3_float_::y и Vec3_float_::z.
Используется в PickIndoorFaces_Mouse() и PickOutdoorFaces_Mouse().
bool Vis::CheckIntersectBModel | ( | BLVFace * | pFace, |
Vec3_short_ | IntersectPoint, | ||
signed int | sModelID | ||
) |
См. определение в файле Vis.cpp строка 585
Перекрестные ссылки BLV_CreateIntersectFacesVertexCoordList(), engine, fixpoint_div(), fixpoint_mul(), intersect_face_vertex_coords_list_a, intersect_face_vertex_coords_list_b, ODM_CreateIntersectFacesVertexCoordList(), BLVFace::pBounding, BLVFace::uAttributes, BLVFace::uNumVertices, BBox_short_::x1, BBox_short_::x2, BBox_short_::y1, BBox_short_::y2, BBox_short_::z1 и BBox_short_::z2.
Используется в Intersect_Ray_Face().
void Vis::BLV_CreateIntersectFacesVertexCoordList | ( | int * | a, |
int * | b, | ||
int16_t * | intersect_face_vertex_coords_list_a, | ||
int16_t * | intersect_face_vertex_coords_list_b, | ||
Vec3_short_ * | IntersectPoint, | ||
BLVFace * | pFace | ||
) |
См. определение в файле Vis.cpp строка 731
Перекрестные ссылки intersect_face_vertex_coords_list_a, intersect_face_vertex_coords_list_b, pIndoor, BLVFace::pVertexIDs, IndoorLocation::pVertices, BLVFace::pXInterceptDisplacements, BLVFace::pYInterceptDisplacements, BLVFace::pZInterceptDisplacements, BLVFace::uAttributes и BLVFace::uNumVertices.
Используется в CheckIntersectBModel().
void Vis::ODM_CreateIntersectFacesVertexCoordList | ( | int * | a, |
int * | b, | ||
int16_t * | intersect_face_vertex_coords_list_a, | ||
int16_t * | intersect_face_vertex_coords_list_b, | ||
Vec3_short_ * | IntersectPoint, | ||
BLVFace * | pFace, | ||
unsigned int | uModelID | ||
) |
См. определение в файле Vis.cpp строка 798
Перекрестные ссылки intersect_face_vertex_coords_list_a, intersect_face_vertex_coords_list_b, OutdoorLocation::pBModels, pOutdoor, BLVFace::pVertexIDs, BLVFace::pXInterceptDisplacements, BLVFace::pYInterceptDisplacements, BLVFace::pZInterceptDisplacements, BLVFace::uAttributes и BLVFace::uNumVertices.
Используется в CheckIntersectBModel().
void Vis::CastPickRay | ( | RenderVertexSoft * | pRay, |
float | fMouseX, | ||
float | fMouseY, | ||
float | fPickDepth | ||
) |
См. определение в файле Vis.cpp строка 921
Перекрестные ссылки fixpoint_from_float(), pIndoorCameraD3D, IndoorCameraD3D::sRotationX, IndoorCameraD3D::sRotationY, UnprojectX(), UnprojectY(), IndoorCameraD3D::vPartyPos, RenderVertexSoft::vWorldPosition, Vec2< T >::x, Vec3_float_::x, Vec2< T >::y, Vec3_float_::y, Vec3< T >::z и Vec3_float_::z.
Используется в DetermineFacetIntersection(), DoesRayIntersectBillboard() и PickMouse().
void Vis::sort_object_pointers | ( | Vis_ObjectInfo ** | pPointers, |
int | start, | ||
int | end | ||
) |
См. определение в файле Vis.cpp строка 1008
Перекрестные ссылки Vis_ObjectInfo::depth.
Используется в DetermineFacetIntersection(), DoesRayIntersectBillboard(), PickClosestActor(), PickKeyboard() и PickMouse().
void Vis::SortVerticesByX | ( | struct RenderVertexD3D3 * | pArray, |
unsigned int | uStart, | ||
unsigned int | uEnd | ||
) |
См. определение в файле Vis.cpp строка 1056
Перекрестные ссылки RenderVertexD3D3::pos и Vec3_float_::x.
Используется в GetPolygonCenter().
void Vis::SortVerticesByY | ( | struct RenderVertexD3D3 * | pArray, |
unsigned int | uStart, | ||
unsigned int | uEnd | ||
) |
См. определение в файле Vis.cpp строка 1092
Перекрестные ссылки RenderVertexD3D3::pos и Vec3_float_::y.
Используется в GetPolygonCenter().
void Vis::SortByScreenSpaceX | ( | struct RenderVertexSoft * | pArray, |
int | start, | ||
int | end | ||
) |
См. определение в файле Vis.cpp строка 1128
Перекрестные ссылки RenderVertexSoft::vWorldViewProjX.
Используется в GetPolygonScreenSpaceCenter().
void Vis::SortByScreenSpaceY | ( | struct RenderVertexSoft * | pArray, |
int | start, | ||
int | end | ||
) |
См. определение в файле Vis.cpp строка 1166
Перекрестные ссылки RenderVertexSoft::vWorldViewProjY.
Используется в GetPolygonScreenSpaceCenter().
Vis_SelectionList Vis::default_list |
См. определение в файле Vis.h строка 149
Используется в get_picked_object_zbuf_val(), Engine::OutlineSelection(), PickKeyboard(), Engine::PickKeyboard() и PickMouse().
RenderVertexSoft Vis::stru_200C |
RenderVertexSoft Vis::stru_203C |
RenderVertexSoft Vis::stru_206C |
RenderVertexSoft Vis::stru_209C |
int Vis::keyboard_pick_depth |
См. определение в файле Vis.h строка 154
Используется в PickKeyboard() и Vis().
Log* Vis::log = nullptr |
См. определение в файле Vis.h строка 156
Используется в get_object_zbuf_val(), is_part_of_selection(), PickMouse() и Vis().