World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Структура SkyBillboardStruct

#include <IRender.h>

Открытые члены

void CalcSkyFrustumVec (int a2, int a3, int a4, int a5, int a6, int a7)
 

Открытые атрибуты

int field_0_party_dir_x
 
int field_4_party_dir_y
 
int field_8_party_dir_z
 
int CamVecLeft_Z
 
int CamVecLeft_X
 
int CamVecLeft_Y
 
int CamVecFront_Z
 
int CamVecFront_X
 
int CamVecFront_Y
 
int CamLeftDot
 
int CamFrontDot
 

Подробное описание

См. определение в файле IRender.h строка 465

Методы

◆ CalcSkyFrustumVec()

void SkyBillboardStruct::CalcSkyFrustumVec ( int  a2,
int  a3,
int  a4,
int  a5,
int  a6,
int  a7 
)

См. определение в файле RenderOpenGL.cpp строка 62

62  {
63  // 6 0 0 0 6 0
64 
65  int cosy = pIndoorCameraD3D->int_cosine_y;
66  int cosx = pIndoorCameraD3D->int_cosine_x;
67  int siny = pIndoorCameraD3D->int_sine_y;
68  int sinx = pIndoorCameraD3D->int_sine_x;
69 
70  // positions all minus ?
71  int v11 = cosy * -pIndoorCameraD3D->vPartyPos.x +
72  siny * -pIndoorCameraD3D->vPartyPos.y;
73  int v24 = cosy * -pIndoorCameraD3D->vPartyPos.y -
74  siny * -pIndoorCameraD3D->vPartyPos.x;
75 
76  // cam position transform
78  this->field_0_party_dir_x = fixpoint_mul(v11, cosx) +
79  fixpoint_mul((-pIndoorCameraD3D->vPartyPos.z) << 16, sinx);
80  this->field_4_party_dir_y = v24;
81  this->field_8_party_dir_z =
82  fixpoint_mul((-pIndoorCameraD3D->vPartyPos.z) << 16, cosx) /*-*/ +
83  fixpoint_mul(v11, sinx);
84  }
85  else {
86  this->field_0_party_dir_x = v11;
87  this->field_4_party_dir_y = v24;
89  }
90 
91  // set 1 position transfrom (6 0 0) looks like cam left vector
93  int v17 = fixpoint_mul(x1, cosy) + fixpoint_mul(y1, siny);
94 
95  this->CamVecLeft_Z = fixpoint_mul(v17, cosx) + fixpoint_mul(z1, sinx); // dz
96  this->CamVecLeft_X = fixpoint_mul(y1, cosy) - fixpoint_mul(x1, siny); // dx
97  this->CamVecLeft_Y = fixpoint_mul(z1, cosx) /*-*/ + fixpoint_mul(v17, sinx); // dy
98  }
99  else {
100  this->CamVecLeft_Z = fixpoint_mul(x1, cosy) + fixpoint_mul(y1, siny); // dz
101  this->CamVecLeft_X = fixpoint_mul(y1, cosy) - fixpoint_mul(x1, siny); // dx
102  this->CamVecLeft_Y = z1; // dy
103  }
104 
105  // set 2 position transfrom (0 6 0) looks like cam front vector
107  int v19 = fixpoint_mul(x2, cosy) + fixpoint_mul(y2, siny);
108 
109  this->CamVecFront_Z = fixpoint_mul(v19, cosx) + fixpoint_mul(z2, sinx); // dz
110  this->CamVecFront_X = fixpoint_mul(y2, cosy) - fixpoint_mul(x2, siny); // dx
111  this->CamVecFront_Y = fixpoint_mul(z2, cosx) /*-*/ + fixpoint_mul(v19, sinx); // dy
112  }
113  else {
114  this->CamVecFront_Z = fixpoint_mul(x2, cosy) + fixpoint_mul(y2, siny); // dz
115  this->CamVecFront_X = fixpoint_mul(y2, cosy) - fixpoint_mul(x2, siny); // dx
116  this->CamVecFront_Y = z2; // dy
117  }
118 
119  this->CamLeftDot = fixpoint_dot(
120  this->CamVecLeft_Z, this->field_0_party_dir_x,
121  this->CamVecLeft_X, this->field_4_party_dir_y,
122  this->CamVecLeft_Y, this->field_8_party_dir_z);
123  this->CamFrontDot = fixpoint_dot(
124  this->CamVecFront_Z, this->field_0_party_dir_x,
125  this->CamVecFront_X, this->field_4_party_dir_y,
126  this->CamVecFront_Y, this->field_8_party_dir_z);
127 }

Перекрестные ссылки CamFrontDot, CamLeftDot, CamVecFront_X, CamVecFront_Y, CamVecFront_Z, CamVecLeft_X, CamVecLeft_Y, CamVecLeft_Z, field_0_party_dir_x, field_4_party_dir_y, field_8_party_dir_z, fixpoint_dot(), fixpoint_mul(), IndoorCameraD3D::int_cosine_x, IndoorCameraD3D::int_cosine_y, IndoorCameraD3D::int_sine_x, IndoorCameraD3D::int_sine_y, pIndoorCameraD3D, IndoorCameraD3D::sRotationX, IndoorCameraD3D::vPartyPos, Vec2< T >::x, Vec2< T >::y и Vec3< T >::z.

Используется в Render::DrawIndoorSky() и OutdoorLocation::ExecDraw().

+ Граф вызовов:
+ Граф вызова функции:

Данные класса

◆ field_0_party_dir_x

int SkyBillboardStruct::field_0_party_dir_x

См. определение в файле IRender.h строка 468

Используется в CalcSkyFrustumVec().

◆ field_4_party_dir_y

int SkyBillboardStruct::field_4_party_dir_y

См. определение в файле IRender.h строка 469

Используется в CalcSkyFrustumVec().

◆ field_8_party_dir_z

int SkyBillboardStruct::field_8_party_dir_z

См. определение в файле IRender.h строка 470

Используется в CalcSkyFrustumVec().

◆ CamVecLeft_Z

int SkyBillboardStruct::CamVecLeft_Z

См. определение в файле IRender.h строка 471

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamVecLeft_X

int SkyBillboardStruct::CamVecLeft_X

См. определение в файле IRender.h строка 472

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamVecLeft_Y

int SkyBillboardStruct::CamVecLeft_Y

См. определение в файле IRender.h строка 473

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamVecFront_Z

int SkyBillboardStruct::CamVecFront_Z

См. определение в файле IRender.h строка 474

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamVecFront_X

int SkyBillboardStruct::CamVecFront_X

См. определение в файле IRender.h строка 475

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamVecFront_Y

int SkyBillboardStruct::CamVecFront_Y

См. определение в файле IRender.h строка 476

Используется в CalcSkyFrustumVec(), Render::DrawIndoorSky(), RenderOpenGL::DrawOutdoorSkyD3D() и Render::DrawOutdoorSkyD3D().

◆ CamLeftDot

int SkyBillboardStruct::CamLeftDot

См. определение в файле IRender.h строка 477

Используется в CalcSkyFrustumVec().

◆ CamFrontDot

int SkyBillboardStruct::CamFrontDot

См. определение в файле IRender.h строка 478

Используется в CalcSkyFrustumVec().


Объявления и описания членов структур находятся в файлах:
SkyBillboardStruct::field_0_party_dir_x
int field_0_party_dir_x
Definition: IRender.h:468
SkyBillboardStruct::CamVecLeft_Y
int CamVecLeft_Y
Definition: IRender.h:473
Vec2::x
T x
Definition: VectorTypes.h:12
IndoorCameraD3D::sRotationX
int sRotationX
Definition: IndoorCameraD3D.h:248
SkyBillboardStruct::field_4_party_dir_y
int field_4_party_dir_y
Definition: IRender.h:469
SkyBillboardStruct::CamVecLeft_Z
int CamVecLeft_Z
Definition: IRender.h:471
x1
GLuint GLfloat GLfloat GLfloat x1
Definition: SDL_opengl_glext.h:8586
IndoorCameraD3D::int_cosine_x
int int_cosine_x
Definition: IndoorCameraD3D.h:263
IndoorCameraD3D::vPartyPos
Vec3< int > vPartyPos
Definition: IndoorCameraD3D.h:253
Vec2::y
T y
Definition: VectorTypes.h:13
fixpoint_dot
__int64 fixpoint_dot(int x1, int x2, int y1, int y2, int z1, int z2)
Definition: OurMath.cpp:142
IndoorCameraD3D::int_cosine_y
int int_cosine_y
Definition: IndoorCameraD3D.h:259
SkyBillboardStruct::field_8_party_dir_z
int field_8_party_dir_z
Definition: IRender.h:470
fixpoint_mul
__int64 fixpoint_mul(int a1, int a2)
Definition: OurMath.cpp:138
SkyBillboardStruct::CamVecFront_Z
int CamVecFront_Z
Definition: IRender.h:474
IndoorCameraD3D::int_sine_x
int int_sine_x
Definition: IndoorCameraD3D.h:261
SkyBillboardStruct::CamVecFront_Y
int CamVecFront_Y
Definition: IRender.h:476
SkyBillboardStruct::CamVecLeft_X
int CamVecLeft_X
Definition: IRender.h:472
x2
GLfixed GLfixed x2
Definition: SDL_opengl_glext.h:4586
y1
GLfixed y1
Definition: SDL_opengl_glext.h:4586
SkyBillboardStruct::CamVecFront_X
int CamVecFront_X
Definition: IRender.h:475
y2
GLfixed GLfixed GLfixed y2
Definition: SDL_opengl_glext.h:4586
SkyBillboardStruct::CamLeftDot
int CamLeftDot
Definition: IRender.h:477
SkyBillboardStruct::CamFrontDot
int CamFrontDot
Definition: IRender.h:478
pIndoorCameraD3D
IndoorCameraD3D * pIndoorCameraD3D
Definition: IndoorCameraD3D.cpp:21
IndoorCameraD3D::int_sine_y
int int_sine_y
Definition: IndoorCameraD3D.h:257
Vec3::z
T z
Definition: VectorTypes.h:27