Khaotic Engine Reborn
Loading...
Searching...
No Matches
object Class Reference
Inheritance diagram for object:
physics

Public Member Functions

 object (application_class &app)
 
 object (const object &)=delete
 
objectoperator= (const object &)=delete
 
bool Initialize (ID3D11Device *device, ID3D11DeviceContext *deviceContext, char *modelFilename, TextureContainer &texturesContainer)
 
void SetScaleMatrix (XMMATRIX scaleMatrix)
 
void SetRotateMatrix (XMMATRIX rotateMatrix)
 
void SetTranslateMatrix (XMMATRIX translateMatrix)
 
void SetSRMatrix (XMMATRIX srMatrix)
 
void SetWorldMatrix (XMMATRIX worldMatrix)
 
void SetPosition (XMVECTOR position)
 
void SetRotation (XMVECTOR rotation)
 
void SetScale (XMVECTOR scale)
 
XMMATRIX GetScaleMatrix () const
 
XMMATRIX GetRotateMatrix () const
 
XMMATRIX GetTranslateMatrix () const
 
XMMATRIX GetSRMatrix () const
 
XMMATRIX GetWorldMatrix () const
 
XMVECTOR GetPosition ()
 
XMVECTOR GetRotation ()
 
XMVECTOR GetScale ()
 
void SetVelocity (XMVECTOR)
 
void AddVelocity (float deltaTime)
 
XMVECTOR GetVelocity () const
 
void SetAcceleration (XMVECTOR)
 
XMVECTOR GetAcceleration () const
 
void SetMass (float)
 
float GetMass () const
 
void SetGrounded (bool)
 
bool IsGrounded () const
 
bool IsPhysicsEnabled () const
 
void SetPhysicsEnabled (bool state)
 
void SetVisible (bool state)
 
bool IsVisible () const
 
void UpdateWorldMatrix ()
 
void UpdateSRMatrix ()
 
void UpdateScaleMatrix ()
 
void UpdateRotateMatrix ()
 
void UpdateTranslateMatrix ()
 
void UpdatePosition (float deltaTime)
 
void Update ()
 
std::string GetName ()
 
void SetName (std::string name)
 
int SetId (int id)
 
int GetId () const
 
void SetType (ObjectType type)
 
ObjectType GetType () const
 
ShaderType GetActiveShader () const
 
void SetActiveShader (ShaderType activeShader)
 
float GetBoundingRadius () const
 
void SetBoundingRadius (float radius)
 
void SetModelPath (std::wstring &path)
 
std::wstring & GetModelPath ()
 
ShaderType StringToShaderType (const std::string &shaderType)
 
std::string ShaderTypeToString (ShaderType shaderType)
 
ObjectType StringToObjectType (const std::string &objectType)
 
std::string ObjectTypeToString (ObjectType objectType)
 
void LaunchObject ()
 
bool LoadTexturesFromPath (std::vector< std::wstring > &texturePaths, TextureContainer &texturesContainer, d_3d_class *m_Direct3D)
 
bool SetupInstancing (ID3D11Device *device, const std::vector< XMMATRIX > &instanceTransforms)
 
void EnableInstancing (bool enabled)
 
void SetInstanceCount (int count)
 
bool IsInstancingEnabled () const
 
int GetInstanceCount () const
 
ID3D11Buffer * GetInstanceBuffer () const
 
void SetAlpha (float alpha)
 
float GetAlpha () const
 
void SetInitialStretch (float initialStretch)
 
float GetInitialStretch () const
 
void SetSpringConstant (float springConstant)
 
float GetSpringConstant () const
 
bool IsGravityEnabled () const
 
void SetGravityEnabled (bool state)
 
std::shared_ptr< model_classget_model () const
 
void SetModel (std::shared_ptr< model_class > model)
 

Public Attributes

bool m_demoSpinning = false
 
XMVECTOR m_previousPosition
 
XMVECTOR m_velocity
 
int m_id
 
bool m_gravityEnabled = true
 

Detailed Description

Definition at line 29 of file object.h.

Constructor & Destructor Documentation

◆ object() [1/2]

object::object ( application_class & app)

Definition at line 8 of file object.cpp.

8 : m_Application(app)// initialize the reference here
9{
10 m_scaleMatrix = XMMatrixIdentity();
11 m_rotateMatrix = XMMatrixIdentity();
12 m_translateMatrix = XMMatrixIdentity();
13 m_srMatrix = XMMatrixIdentity();
14 m_worldMatrix = XMMatrixIdentity();
15 m_previousPosition = XMVectorZero();
16 m_velocity = XMVectorZero();
17 m_acceleration = XMVectorZero();
18 m_mass = NULL;
19 m_isGrounded = false;
20 m_id = NULL;
21 m_boundingRadius = 1.0f;
22}

◆ object() [2/2]

object::object ( )

Definition at line 24 of file object.cpp.

25 : m_Application(*static_cast<application_class*>(nullptr)) // Remplacer suivant votre logique
26{
27 m_scaleMatrix = XMMatrixIdentity();
28 m_rotateMatrix = XMMatrixIdentity();
29 m_translateMatrix = XMMatrixIdentity();
30 m_srMatrix = XMMatrixIdentity();
31 m_worldMatrix = XMMatrixIdentity();
32 m_previousPosition = XMVectorZero();
33 m_velocity = XMVectorZero();
34 m_acceleration = XMVectorZero();
35 m_mass = NULL;
36 m_isGrounded = false;
37 m_id = NULL;
38 m_boundingRadius = 1.0f;
39}

◆ ~object()

object::~object ( )

Definition at line 41 of file object.cpp.

42{
43}

Member Function Documentation

◆ AddVelocity()

void object::AddVelocity ( float deltaTime)

Definition at line 240 of file object.cpp.

241{
242 m_velocity += m_acceleration * deltaTime;
243}

◆ get_model()

std::shared_ptr< model_class > object::get_model ( ) const
inline

Definition at line 130 of file object.h.

130{ return m_model_; }

◆ GetAcceleration()

XMVECTOR object::GetAcceleration ( ) const

Definition at line 255 of file object.cpp.

256{
257 return m_acceleration;
258}

◆ GetActiveShader()

ShaderType object::GetActiveShader ( ) const
inline

Definition at line 97 of file object.h.

97{ return m_activeShader; };

◆ GetAlpha()

float object::GetAlpha ( ) const
inline

Definition at line 121 of file object.h.

121{ return m_alpha; }

◆ GetBoundingRadius()

float object::GetBoundingRadius ( ) const

Definition at line 300 of file object.cpp.

301{
302 return m_boundingRadius;
303}

◆ GetId()

int object::GetId ( ) const

Definition at line 285 of file object.cpp.

286{
287 return m_id;
288}

◆ GetInitialStretch()

float object::GetInitialStretch ( ) const
inline

Definition at line 123 of file object.h.

123{ return m_initialStretch; }

◆ GetMass()

float object::GetMass ( ) const

Definition at line 265 of file object.cpp.

266{
267 return m_mass;
268}

◆ GetModelPath()

std::wstring & object::GetModelPath ( )
inline

Definition at line 104 of file object.h.

104{ return m_modelPath; }

◆ GetName()

std::string object::GetName ( )

Definition at line 225 of file object.cpp.

226{
227 return m_name;
228}

◆ GetPosition()

XMVECTOR object::GetPosition ( )

Definition at line 123 of file object.cpp.

124{
125 XMFLOAT4X4 matrix;
126 XMStoreFloat4x4(&matrix, m_translateMatrix);
127 return XMVectorSet(matrix._41, matrix._42, matrix._43, 0.0f);
128}

◆ GetRotateMatrix()

XMMATRIX object::GetRotateMatrix ( ) const

Definition at line 103 of file object.cpp.

104{
105 return m_rotateMatrix;
106}

◆ GetRotation()

XMVECTOR object::GetRotation ( )

Definition at line 130 of file object.cpp.

131{
132 XMFLOAT4X4 matrix;
133 XMStoreFloat4x4(&matrix, m_rotateMatrix);
134 float rotationX = atan2f(matrix._32, matrix._33);
135 float rotationY = atan2f(-matrix._31, sqrtf(matrix._32 * matrix._32 + matrix._33 * matrix._33));
136 float rotationZ = atan2f(matrix._21, matrix._11);
137 return XMVectorSet(rotationX, rotationY, rotationZ, 0.0f);
138}

◆ GetScale()

XMVECTOR object::GetScale ( )

Definition at line 140 of file object.cpp.

141{
142 XMFLOAT4X4 matrix;
143 XMStoreFloat4x4(&matrix, m_scaleMatrix);
144
145 // Utiliser des vecteurs pour les lignes de la matrice
146 XMVECTOR row1 = XMLoadFloat3(reinterpret_cast<XMFLOAT3*>(&matrix._11));
147 XMVECTOR row2 = XMLoadFloat3(reinterpret_cast<XMFLOAT3*>(&matrix._21));
148 XMVECTOR row3 = XMLoadFloat3(reinterpret_cast<XMFLOAT3*>(&matrix._31));
149
150 // Calculer les longueurs des vecteurs
151 XMVECTOR scale = XMVectorSet(
152 XMVectorGetX(XMVector3Length(row1)),
153 XMVectorGetX(XMVector3Length(row2)),
154 XMVectorGetX(XMVector3Length(row3)),
155 0.0f
156 );
157
158 return scale;
159}

◆ GetScaleMatrix()

XMMATRIX object::GetScaleMatrix ( ) const

Definition at line 98 of file object.cpp.

99{
100 return m_scaleMatrix;
101}

◆ GetSpringConstant()

float object::GetSpringConstant ( ) const
inline

Definition at line 125 of file object.h.

125{ return m_springConstant; }

◆ GetSRMatrix()

XMMATRIX object::GetSRMatrix ( ) const

Definition at line 113 of file object.cpp.

114{
115 return m_srMatrix;
116}

◆ GetTranslateMatrix()

XMMATRIX object::GetTranslateMatrix ( ) const

Definition at line 108 of file object.cpp.

109{
110 return m_translateMatrix;
111}

◆ GetType()

ObjectType object::GetType ( ) const
inline

Definition at line 95 of file object.h.

95{ return m_type; };

◆ GetVelocity()

XMVECTOR object::GetVelocity ( ) const

Definition at line 245 of file object.cpp.

246{
247 return m_velocity;
248}

◆ GetWorldMatrix()

XMMATRIX object::GetWorldMatrix ( ) const

Definition at line 118 of file object.cpp.

119{
120 return m_worldMatrix;
121}

◆ Initialize()

bool object::Initialize ( ID3D11Device * device,
ID3D11DeviceContext * deviceContext,
char * modelFilename,
TextureContainer & texturesContainer )

Definition at line 45 of file object.cpp.

51{
52
53 std::string filename(modelFilename);
54 auto it = g_model_cache.find(filename);
55 if (it != g_model_cache.end())
56 {
57 m_model_ = it->second;
58 }
59 else
60 {
61 auto new_model = std::make_shared<model_class>();
62 if (!new_model->Initialize(device, deviceContext, modelFilename, texturesContainer))
63 {
64 return false;
65 }
66 g_model_cache[filename] = new_model;
67 m_model_ = new_model;
68 }
69
70 return true;
71}

◆ IsGravityEnabled()

bool object::IsGravityEnabled ( ) const
inline

Definition at line 127 of file object.h.

127{ return m_gravityEnabled; }

◆ IsGrounded()

bool object::IsGrounded ( ) const

Definition at line 275 of file object.cpp.

276{
277 return m_isGrounded;
278}

◆ IsPhysicsEnabled()

bool object::IsPhysicsEnabled ( ) const

Definition at line 290 of file object.cpp.

291{
292 return m_isPhysicsEnabled;
293}

◆ IsVisible()

bool object::IsVisible ( ) const
inline

Definition at line 78 of file object.h.

78{ return m_isVisible; }

◆ LaunchObject()

void object::LaunchObject ( )

Definition at line 359 of file object.cpp.

360{
361 // Constants
362 const float gravity = -9.81f;
363
364 // Convert alpha from degrees to radians if needed
365 float alphaRadians = m_alpha * (XM_PI / 180.0f);
366
367 // Scale factors to make the physics simulation more visible
368 float scaleFactor = 200.0f; // Adjust this based on your world scale
369
370 // Calculate initial velocity magnitude using the same formula as the Python code
371 // v_eject = l1 * sqrt(k/m) * sqrt(1 - (m*g*sin(alpha)/(k*l1))^2)
372 float velocityMagnitude = m_initialStretch * sqrtf(m_springConstant / m_mass) *
373 sqrtf(1.0f - powf((m_mass * gravity * sinf(alphaRadians) / (m_springConstant * m_initialStretch)), 2.0f));
374
375 // Apply scale factor
376 velocityMagnitude *= scaleFactor;
377
378 // Calculate velocity components
379 XMVECTOR velocity = XMVectorSet(
380 velocityMagnitude * cosf(alphaRadians), // vx = v0 * cos(alpha)
381 velocityMagnitude * sinf(alphaRadians), // vy = v0 * sin(alpha)
382 0.0f, // z-component (0 for 2D trajectory)
383 0.0f
384 );
385
386 // Apply velocity to object
387 SetVelocity(velocity);
388
389 // Enable physics for the object to handle the trajectory
390 SetPhysicsEnabled(true);
391
392 // Reset grounded state
393 SetGrounded(false);
394
395 // Debug output
396 char buffer[256];
397 sprintf_s(buffer, "Launch velocity: %f m/s at angle %f degrees", XMVectorGetX(XMVector3Length(velocity)), m_alpha);
398 OutputDebugStringA(buffer);
399}

◆ LoadTexturesFromPath()

bool object::LoadTexturesFromPath ( std::vector< std::wstring > & texturePaths,
TextureContainer & texturesContainer,
d_3d_class * m_Direct3D )

Definition at line 401 of file object.cpp.

403{
404
405 HRESULT result;
406
407 int i = 0;
408 TextureType type;
409 for (const auto& texturePath : texturePaths)
410 {
411 ID3D11ShaderResourceView* texture = nullptr;
412 result = DirectX::CreateWICTextureFromFile(m_Direct3D->get_device(), m_Direct3D->get_device_context(), texturePath.c_str(), nullptr, &texture);
413 if (FAILED(result))
414 {
415
416 // Utiliser _com_error pour obtenir des informations détaillées sur l'erreur
417 _com_error err(result);
418 LPCTSTR errMsg = err.ErrorMessage();
419
420 //convertie errMessage en std::wstring
421 std::wstring ws(errMsg);
422 std::string str(ws.begin(), ws.end());
423
424 Logger::Get().Log("Failed to load texture: " + std::string(texturePath.begin(), texturePath.end()) +
425 "\nError: " + std::to_string(result) +
426 "\nDescription: " + str,
427 __FILE__, __LINE__, Logger::LogLevel::Error);
428 return false; // Assurez-vous de retourner false ou de gérer l'erreur de manière appropriée
429 }
430 texturesContainer.AssignTexture(texturesContainer, texture,texturePath , i);
431 i++;
432
433 }
434
435 return true;
436}
static Logger & Get()
Definition Logger.h:20
void Log(const std::string &message, const std::string &fileName, int lineNumber, LogLevel level=LogLevel::Info)
Definition Logger.h:158
ID3D11Device * get_device()
Gets the Direct3D device.
ID3D11DeviceContext * get_device_context()
Gets the Direct3D device context.

◆ ObjectTypeToString()

std::string object::ObjectTypeToString ( ObjectType objectType)

Definition at line 317 of file object.cpp.

317 {
318 switch (type) {
319 case ObjectType::Cube: return "Cube";
320 case ObjectType::Sphere: return "Sphere";
321 // Ajoutez d'autres cas si nécessaire
322 default: return "Unknown";
323 }
324}

◆ SetAcceleration()

void object::SetAcceleration ( XMVECTOR acceleration)

Definition at line 250 of file object.cpp.

251{
252 m_acceleration = acceleration;
253}

◆ SetActiveShader()

void object::SetActiveShader ( ShaderType activeShader)
inline

Definition at line 98 of file object.h.

98{ m_activeShader = activeShader; };

◆ SetAlpha()

void object::SetAlpha ( float alpha)
inline

Definition at line 120 of file object.h.

120{ m_alpha = alpha; }

◆ SetBoundingRadius()

void object::SetBoundingRadius ( float radius)
inline

Definition at line 101 of file object.h.

101{ m_boundingRadius = radius; }

◆ SetGravityEnabled()

void object::SetGravityEnabled ( bool state)
inline

Definition at line 128 of file object.h.

128{ m_gravityEnabled = state; }

◆ SetGrounded()

void object::SetGrounded ( bool isGrounded)

Definition at line 270 of file object.cpp.

271{
272 m_isGrounded = isGrounded;
273}

◆ SetId()

int object::SetId ( int id)

Definition at line 280 of file object.cpp.

281{
282 return m_id = id;
283}

◆ SetInitialStretch()

void object::SetInitialStretch ( float initialStretch)
inline

Definition at line 122 of file object.h.

122{ m_initialStretch = initialStretch; }

◆ SetMass()

void object::SetMass ( float mass)

Definition at line 260 of file object.cpp.

261{
262 m_mass = mass;
263}

◆ SetModel()

void object::SetModel ( std::shared_ptr< model_class > model)
inline

Definition at line 131 of file object.h.

131{ m_model_ = model; }

◆ SetModelPath()

void object::SetModelPath ( std::wstring & path)
inline

Definition at line 103 of file object.h.

103{ m_modelPath = path; }

◆ SetName()

void object::SetName ( std::string name)

Definition at line 230 of file object.cpp.

231{
232 m_name = name;
233}

◆ SetPhysicsEnabled()

void object::SetPhysicsEnabled ( bool state)

Definition at line 295 of file object.cpp.

296{
297 m_isPhysicsEnabled = state;
298}

◆ SetPosition()

void object::SetPosition ( XMVECTOR position)

Definition at line 163 of file object.cpp.

164{
165 XMFLOAT4X4 matrix;
166 XMStoreFloat4x4(&matrix, m_translateMatrix);
167 matrix._41 = XMVectorGetX(position);
168 matrix._42 = XMVectorGetY(position);
169 matrix._43 = XMVectorGetZ(position);
170 m_translateMatrix = XMLoadFloat4x4(&matrix);
171}

◆ SetRotateMatrix()

void object::SetRotateMatrix ( XMMATRIX rotateMatrix)

Definition at line 78 of file object.cpp.

79{
80 m_rotateMatrix = rotateMatrix;
81}

◆ SetRotation()

void object::SetRotation ( XMVECTOR rotation)

Definition at line 173 of file object.cpp.

174{
175 XMFLOAT4X4 matrix;
176 XMStoreFloat4x4(&matrix, m_rotateMatrix);
177 XMMATRIX rotationMatrix = XMMatrixRotationRollPitchYaw(XMVectorGetX(rotation), XMVectorGetY(rotation), XMVectorGetZ(rotation));
178 m_rotateMatrix = rotationMatrix;
179}

◆ SetScale()

void object::SetScale ( XMVECTOR scale)

Definition at line 181 of file object.cpp.

182{
183 XMFLOAT4X4 matrix;
184 XMStoreFloat4x4(&matrix, m_scaleMatrix);
185 matrix._11 = XMVectorGetX(scale);
186 matrix._22 = XMVectorGetY(scale);
187 matrix._33 = XMVectorGetZ(scale);
188 m_scaleMatrix = XMLoadFloat4x4(&matrix);
189}

◆ SetScaleMatrix()

void object::SetScaleMatrix ( XMMATRIX scaleMatrix)

Definition at line 73 of file object.cpp.

74{
75 m_scaleMatrix = scaleMatrix;
76}

◆ SetSpringConstant()

void object::SetSpringConstant ( float springConstant)
inline

Definition at line 124 of file object.h.

124{ m_springConstant = springConstant; }

◆ SetSRMatrix()

void object::SetSRMatrix ( XMMATRIX srMatrix)

Definition at line 88 of file object.cpp.

89{
90 m_srMatrix = srMatrix;
91}

◆ SetTranslateMatrix()

void object::SetTranslateMatrix ( XMMATRIX translateMatrix)

Definition at line 83 of file object.cpp.

84{
85 m_translateMatrix = translateMatrix;
86}

◆ SetType()

void object::SetType ( ObjectType type)

Definition at line 312 of file object.cpp.

313{
314 m_type = type;
315}

◆ SetVelocity()

void object::SetVelocity ( XMVECTOR velocity)

Definition at line 235 of file object.cpp.

236{
237 m_velocity = velocity;
238}

◆ SetVisible()

void object::SetVisible ( bool state)
inline

Definition at line 77 of file object.h.

77{ m_isVisible = state; }

◆ SetWorldMatrix()

void object::SetWorldMatrix ( XMMATRIX worldMatrix)

Definition at line 93 of file object.cpp.

94{
95 m_worldMatrix = worldMatrix;
96}

◆ ShaderTypeToString()

std::string object::ShaderTypeToString ( ShaderType shaderType)

Definition at line 333 of file object.cpp.

333 {
334 switch (type) {
335 case ShaderType::ALPHA_MAPPING: return "ALPHA_MAPPING";
336 case ShaderType::CEL_SHADING: return "CEL_SHADING";
337 case ShaderType::NORMAL_MAPPING: return "NORMAL_MAPPING";
338 case ShaderType::SPECULAR_MAPPING: return "SPECULAR_MAPPING";
339 case ShaderType::TEXTURE: return "TEXTURE";
340 case ShaderType::LIGHTING: return "LIGHTING";
341 case ShaderType::SUNLIGHT: return "SUNLIGHT";
342 // Ajoutez d'autres cas si nécessaire
343 default: return "Unknown";
344 }
345}

◆ StringToObjectType()

ObjectType object::StringToObjectType ( const std::string & objectType)

Definition at line 326 of file object.cpp.

326 {
327 if (str == "Cube") return ObjectType::Cube;
328 if (str == "Sphere") return ObjectType::Sphere;
329 // Add other cases as needed
330 return ObjectType::Unknown;
331}

◆ StringToShaderType()

ShaderType object::StringToShaderType ( const std::string & shaderType)

Definition at line 347 of file object.cpp.

347 {
348 if (str == "ALPHA_MAPPING") return ShaderType::ALPHA_MAPPING;
349 if (str == "CEL_SHADING") return ShaderType::CEL_SHADING;
350 if (str == "NORMAL_MAPPING") return ShaderType::NORMAL_MAPPING;
351 if (str == "SPECULAR_MAPPING") return ShaderType::SPECULAR_MAPPING;
352 if (str == "TEXTURE") return ShaderType::TEXTURE;
353 if (str == "LIGHTING") return ShaderType::LIGHTING;
354 if (str == "SUNLIGHT") return ShaderType::SUNLIGHT;
355 // Add other cases as needed
356 return ShaderType::TEXTURE;
357}

◆ Update()

void object::Update ( )

Definition at line 216 of file object.cpp.

217{
218 UpdateWorldMatrix();
219 UpdateSRMatrix();
220 UpdateTranslateMatrix();
221 UpdateRotateMatrix();
222 UpdateScaleMatrix();
223}

◆ UpdatePosition()

void object::UpdatePosition ( float deltaTime)

Definition at line 305 of file object.cpp.

306{
307 XMVECTOR position = GetPosition();
308 position = position + GetVelocity() * deltaTime;
309 SetPosition(position);
310}

◆ UpdateRotateMatrix()

void object::UpdateRotateMatrix ( )

Definition at line 206 of file object.cpp.

207{
208 m_rotateMatrix = XMMatrixRotationRollPitchYawFromVector(GetRotation());
209}

◆ UpdateScaleMatrix()

void object::UpdateScaleMatrix ( )

Definition at line 211 of file object.cpp.

212{
213 m_scaleMatrix = XMMatrixScalingFromVector(GetScale());
214}

◆ UpdateSRMatrix()

void object::UpdateSRMatrix ( )

Definition at line 196 of file object.cpp.

197{
198 m_srMatrix = m_scaleMatrix * m_rotateMatrix;
199}

◆ UpdateTranslateMatrix()

void object::UpdateTranslateMatrix ( )

Definition at line 201 of file object.cpp.

202{
203 m_translateMatrix = XMMatrixTranslationFromVector(GetPosition());
204}

◆ UpdateWorldMatrix()

void object::UpdateWorldMatrix ( )

Definition at line 191 of file object.cpp.

192{
193 m_worldMatrix = m_scaleMatrix * m_rotateMatrix * m_translateMatrix;
194}

Member Data Documentation

◆ m_demoSpinning

bool object::m_demoSpinning = false

Definition at line 134 of file object.h.

◆ m_gravityEnabled

bool object::m_gravityEnabled = true

Definition at line 138 of file object.h.

◆ m_id

int object::m_id

Definition at line 137 of file object.h.

◆ m_previousPosition

XMVECTOR object::m_previousPosition

Definition at line 135 of file object.h.

◆ m_velocity

XMVECTOR object::m_velocity

Definition at line 136 of file object.h.


The documentation for this class was generated from the following files: