DayZ 1.26
DayZ Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс WeaponDebug

Закрытые члены

Weapon GetWeaponInHands ()
 
void WeaponDebug ()
 
void ~WeaponDebug ()
 
void RemoveAllShapes (bool is_exit=false)
 
void OnCommandHandlerUpdate ()
 
void OnKeyDown (KeyCode key)
 
void CycleDebugMode ()
 
void OnPostFrameUpdate ()
 
void DrawBarrelMemoryPoints (vector begin_point, vector end_point)
 
void DrawLineOfFire (vector begin_point, vector end_point)
 
void AddPosToCyclicBuffer (vector pos)
 
void OrderTrailArray ()
 
void DrawEyePoint (Weapon weapon)
 
vector GetEyePointPosition (Weapon weapon)
 
void DisplayGeneralInfo ()
 
void DisplayTargetInfo ()
 
void DrawLineOfFireMuzzleToHit (vector begin_point, vector camera_dir, vector camera_pos)
 
void DrawLineOfFireCameraHybrid (vector usti_hlavne_position, vector camera_dir, vector camera_pos, vector konec_hlavne_position)
 

Закрытые данные

const int BUFFER_SIZE = 1000
 
const float COLLISIONS_DISTANCE_TOLERANCE = 0.01
 
const float MAX_MUZZLE_DISTANCE_TOLERANCE = 20
 
const float CAMERA_BULLET_ORIGIN_OFFSET = 1
 
const float CAMERA_TRACE_MIN_DISTANCE_TOLERANCE = 0.3
 
Weapon m_WeaponInHands
 
int m_BufferIndex
 
bool m_IsDrawKeyHeldDown
 
bool m_IsLMBPressed
 
bool m_IsToggleKeyPressed
 
bool m_IsFireKeyPressed
 
float m_TargetDistance
 
eDebugMode m_CurrentMode
 
vector m_AimTrailCyclic [BUFFER_SIZE]
 
vector m_AimTrailOrdered [BUFFER_SIZE]
 
ref map< int, stringm_DebugModesNames = new map<int, string>
 
Shape m_Shape_usti
 
Shape m_Shape_konec
 
Shape m_ShapeFireDirection1
 
Shape m_ShapeFireDirection2
 
Shape m_HitShape
 
Shape m_ShapeEye
 
Shape m_ShapeTrailLines
 
Shape m_ShapeFireDirCamera
 
Shape m_HitShape2
 
Shape m_HitShape3
 
Shape m_HitShape4
 
Shape m_PermanentLine1
 
Shape m_PermanentLine2
 
Shape m_PermanentShape1
 
Shape m_PermanentShape2
 

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

Конструктор(ы)

◆ WeaponDebug()

void WeaponDebug ( )
inlineprivate
62 {
63 m_DebugModesNames.Insert(eDebugMode.NORMAL, "Mode "+eDebugMode.NORMAL.ToString()+": shoot along the weapon barrel");
64 m_DebugModesNames.Insert(eDebugMode.MUZZLE_FIRE,"Mode "+eDebugMode.MUZZLE_FIRE.ToString()+": shoot from muzzle end to camera trace hit point");
65 m_DebugModesNames.Insert(eDebugMode.CAMERA_MUZZLE_HYBRID, "Mode "+eDebugMode.CAMERA_MUZZLE_HYBRID.ToString()+": shoot either from camera lens or from muzzle \n depending on the situation");
66 }
eDebugMode
Definition WeaponDebug.c:2
ref map< int, string > m_DebugModesNames
Definition WeaponDebug.c:30

Перекрестные ссылки m_DebugModesNames.

◆ ~WeaponDebug()

void ~WeaponDebug ( )
inlineprivate
69 {
70 RemoveAllShapes(true);
71
72 }
void RemoveAllShapes(bool is_exit=false)
Definition WeaponDebug.c:74

Перекрестные ссылки RemoveAllShapes().

Методы

◆ AddPosToCyclicBuffer()

void AddPosToCyclicBuffer ( vector pos)
inlineprivate
242 {
246 {
247 m_BufferIndex = 0;
248 }
249 }
int m_BufferIndex
Definition WeaponDebug.c:20
vector m_AimTrailCyclic[BUFFER_SIZE]
Definition WeaponDebug.c:27
const int BUFFER_SIZE
Definition WeaponDebug.c:13

Перекрестные ссылки BUFFER_SIZE, m_AimTrailCyclic и m_BufferIndex.

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

◆ CycleDebugMode()

void CycleDebugMode ( )
inlineprivate
147 {
149 if ( m_CurrentMode == eDebugMode.COUNT )
150 {
151 m_CurrentMode = 0;
152 }
153
154 }
eDebugMode m_CurrentMode
Definition WeaponDebug.c:26

Перекрестные ссылки m_CurrentMode.

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

◆ DisplayGeneralInfo()

void DisplayGeneralInfo ( )
inlineprivate
286 {
287 DbgUI.Begin("sway weight", 50, 50);
289 float sway_weight = player.GetAimingModel().GetSwayWeight();
290 DbgUI.Text("value: " + sway_weight.ToString());
291 DbgUI.Text("Hold LWIN to draw debug line");
292 DbgUI.Text("Press X to simulate fire");
293 DbgUI.Text("Press Z to cycle debug modes");
294 DbgUI.Text("Debug " +m_DebugModesNames.Get(m_CurrentMode) );
295 DbgUI.Text("");
296 DbgUI.End();
297 }
PlayerBase GetPlayer()
Definition ModifierBase.c:51
Definition ManBase.c:2
Definition DbgUI.c:60
Definition EntityAI.c:95
proto native CGame GetGame()
static proto native void Begin(string windowTitle, float x=0, float y=0)
static proto native void Text(string label)
static proto native void End()

Перекрестные ссылки DbgUI::Begin(), DbgUI::End(), GetGame(), GetPlayer(), m_CurrentMode, m_DebugModesNames и DbgUI::Text().

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

◆ DisplayTargetInfo()

void DisplayTargetInfo ( )
inlineprivate
300 {
301 DbgUI.Begin("target distance", 50,200);
302 DbgUI.Text("value: " + m_TargetDistance.ToString());
303 DbgUI.End();
304 }
float m_TargetDistance
Definition WeaponDebug.c:25
proto string ToString()

Перекрестные ссылки DbgUI::Begin(), DbgUI::End(), m_TargetDistance, DbgUI::Text() и float::ToString().

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

◆ DrawBarrelMemoryPoints()

void DrawBarrelMemoryPoints ( vector begin_point,
vector end_point )
inlineprivate
207 {
209 {
210 m_Shape_usti = Debug.DrawSphere(end_point, 0.011, Colors.GREEN, ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE|ShapeFlags.NOZBUFFER);
212 }
213 }
Definition Colors.c:4
const int GREEN
Definition Colors.c:8
Definition Debug.c:14
static Shape DrawSphere(vector pos, float size=1, int color=0x1fff7f7f, ShapeFlags flags=ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE)
Definition Debug.c:333
Shape m_Shape_usti
Definition WeaponDebug.c:34
Shape m_Shape_konec
Definition WeaponDebug.c:35
bool m_IsDrawKeyHeldDown
Definition WeaponDebug.c:21
ShapeFlags
Definition EnDebug.c:126

Перекрестные ссылки Debug::DrawSphere(), Colors::GREEN, m_IsDrawKeyHeldDown, m_Shape_konec и m_Shape_usti.

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

◆ DrawEyePoint()

void DrawEyePoint ( Weapon weapon)
inlineprivate
267 {
269 m_ShapeEye = Debug.DrawSphere(position, 0.009, COLOR_BLUE, ShapeFlags.TRANSP|ShapeFlags.NOOUTLINE|ShapeFlags.NOZBUFFER);
270 }
vector GetEyePointPosition(Weapon weapon)
Definition WeaponDebug.c:272
Shape m_ShapeEye
Definition WeaponDebug.c:39
Definition EnConvert.c:106
const int COLOR_BLUE
Definition constants.c:66

Перекрестные ссылки COLOR_BLUE, Debug::DrawSphere(), GetEyePointPosition() и m_ShapeEye.

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

◆ DrawLineOfFire()

void DrawLineOfFire ( vector begin_point,
vector end_point )
inlineprivate
217 {
222
223 aim_point = aim_point.Normalized() * 100;
225
228
230 {
232 }
233
234 if ( m_IsFireKeyPressed )
235 {
238 }
239 }
const int RED
Definition Colors.c:5
Definition DayZPhysics.c:124
static proto bool RaycastRV(vector begPos, vector endPos, out vector contactPos, out vector contactDir, out int contactComponent, set< Object > results=NULL, Object with=NULL, Object ignore=NULL, bool sorted=false, bool ground_only=false, int iType=ObjIntersectView, float radius=0.0, CollisionFlags flags=CollisionFlags.NEARESTCONTACT)
Raycasts world by given parameters.
static void RemoveShape(out Shape shape)
Definition Debug.c:110
static Shape DrawLine(vector from, vector to, int color=0xFFFFFFFF, int flags=0)
Definition Debug.c:388
Shape m_ShapeFireDirection1
Definition WeaponDebug.c:36
Shape m_ShapeFireDirection2
Definition WeaponDebug.c:37
bool m_IsFireKeyPressed
Definition WeaponDebug.c:24
Shape m_PermanentLine1
Definition WeaponDebug.c:46
Shape m_HitShape
Definition WeaponDebug.c:38
const int COLOR_RED
Definition constants.c:64

Перекрестные ссылки COLOR_RED, Debug::DrawLine(), Debug::DrawSphere(), m_HitShape, m_IsFireKeyPressed, m_PermanentLine1, m_ShapeFireDirection1, m_ShapeFireDirection2, DayZPhysics::RaycastRV(), Colors::RED и Debug::RemoveShape().

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

◆ DrawLineOfFireCameraHybrid()

void DrawLineOfFireCameraHybrid ( vector usti_hlavne_position,
vector camera_dir,
vector camera_pos,
vector konec_hlavne_position )
inlineprivate
355 {
356 bool muzzle_shot;
359
361
364
366
369
370 float distance_to_aim_at;
374 weapon_aim_direction.Normalize();
375
376 Man player = GetGame().GetPlayer();
379
381 {
384
386 {
389
391 {
392 muzzle_shot = true;
394 }
395 }
396 }
397
398
399
401
402 if ( m_IsFireKeyPressed )
403 {
407
409
410 if (muzzle_shot)
411 {
414 PrintString("muzle shot");
415 }
416 else
417 {
419 dir.Normalize();
420 dir = dir * 100;
423
424 //m_PermanentShape1 = Debug.DrawSphere(start_point, 0.015,Colors.GREEN);
426 PrintString("camera shot");
427 }
428 }
429
432 float hit_sphere_size = Math.Lerp(0.025, 0.75, distance_normalized);
433
438
439 }
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition EnMath.c:7
Definition ObjectTyped.c:2
const float CAMERA_TRACE_MIN_DISTANCE_TOLERANCE
Definition WeaponDebug.c:17
Shape m_PermanentShape1
Definition WeaponDebug.c:49
const float CAMERA_BULLET_ORIGIN_OFFSET
Definition WeaponDebug.c:16
Shape m_HitShape4
Definition WeaponDebug.c:44
const float MAX_MUZZLE_DISTANCE_TOLERANCE
Definition WeaponDebug.c:15
Shape m_PermanentLine2
Definition WeaponDebug.c:47
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
proto float Normalize()
Normalizes vector. Returns length.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
void PrintString(string s)
Helper for printing out string expression. Example: PrintString("Hello " + var);.
Definition EnScript.c:345
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.

Перекрестные ссылки CAMERA_BULLET_ORIGIN_OFFSET, CAMERA_TRACE_MIN_DISTANCE_TOLERANCE, Class::CastTo(), Math::Clamp(), vector::Distance(), Debug::DrawLine(), Debug::DrawSphere(), GetGame(), Colors::GREEN, Math::InverseLerp(), Math::Lerp(), m_HitShape, m_HitShape4, m_IsFireKeyPressed, m_PermanentLine1, m_PermanentLine2, m_PermanentShape1, m_TargetDistance, MAX_MUZZLE_DISTANCE_TOLERANCE, vector::Normalize(), PrintString(), DayZPhysics::RaycastRV(), Colors::RED и Debug::RemoveShape().

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

◆ DrawLineOfFireMuzzleToHit()

void DrawLineOfFireMuzzleToHit ( vector begin_point,
vector camera_dir,
vector camera_pos )
inlineprivate
308 {
311
314
317
320
322 Man player = GetGame().GetPlayer();
325
327 {
331
332 if ( m_IsFireKeyPressed )
333 {
338 }
339
340 }
341
342 else
343 {
345 m_TargetDistance = -1;
346 }
347
349 {
351 }
352 }
Shape m_HitShape2
Definition WeaponDebug.c:42
Shape m_HitShape3
Definition WeaponDebug.c:43
Shape m_ShapeFireDirCamera
Definition WeaponDebug.c:41

Перекрестные ссылки Class::CastTo(), COLOR_RED, vector::Distance(), Debug::DrawLine(), Debug::DrawSphere(), GetGame(), Colors::GREEN, m_HitShape2, m_HitShape3, m_IsFireKeyPressed, m_PermanentLine1, m_PermanentLine2, m_ShapeFireDirCamera, m_TargetDistance, DayZPhysics::RaycastRV(), Colors::RED и Debug::RemoveShape().

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

◆ GetEyePointPosition()

vector GetEyePointPosition ( Weapon weapon)
inlineprivate
273 {
274 string memory_point_name = weapon.ConfigGetString("memoryPointCamera");
275 ItemBase optics = weapon.GetAttachedOptics();
276 if (optics)
277 {
278 memory_point_name = optics.ConfigGetString("memoryPointCamera");
279 return optics.ModelToWorld(optics.GetSelectionPositionLS( memory_point_name ));
280 }
281 return weapon.ModelToWorld(weapon.GetSelectionPositionLS( memory_point_name ));
282
283 }
Definition InventoryItem.c:731

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

◆ GetWeaponInHands()

Weapon GetWeaponInHands ( )
inlineprivate
53 {
56 if( player && player.GetItemInHands() ) Class.CastTo(weapon_in_hands, player.GetItemInHands());
57
58 return weapon_in_hands;
59 }
Definition PlayerBaseClient.c:2
script counterpart to engine's class Weapon
Definition InventoryItem.c:49

Перекрестные ссылки Class::CastTo(), GetGame() и GetPlayer().

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

◆ OnCommandHandlerUpdate()

void OnCommandHandlerUpdate ( )
inlineprivate
99 {
100
101 m_IsLMBPressed = false;
102 m_IsFireKeyPressed = false;
103
104 if (KeyState(KeyCode.KC_LWIN) == 1)
105 {
107 {
108 OnKeyDown(KeyCode.KC_LWIN);
109 }
110 m_IsDrawKeyHeldDown = true;
111 }
112 else
113 {
115 {
116 //OnKeyUp();
117 }
118 m_IsDrawKeyHeldDown = false;
119 }
120
121 if (KeyState(KeyCode.KC_Z) == 1)
122 {
123 ClearKey(KeyCode.KC_Z);
125 }
126
127 if (KeyState(KeyCode.KC_X) == 1)
128 {
129 m_IsFireKeyPressed = true;
130 ClearKey(KeyCode.KC_X);
131 }
132
134 {
135 m_IsLMBPressed = true;
136 }
137 }
bool m_IsLMBPressed
Definition WeaponDebug.c:22
void CycleDebugMode()
Definition WeaponDebug.c:146
void OnKeyDown(KeyCode key)
Definition WeaponDebug.c:139
proto native void ClearKey(KeyCode key)
KeyCode
Definition EnSystem.c:157
proto native int KeyState(KeyCode key)
MouseState
Definition EnSystem.c:311
proto native int GetMouseState(MouseState index)

Перекрестные ссылки ClearKey(), CycleDebugMode(), GetMouseState(), KeyState(), m_IsDrawKeyHeldDown, m_IsFireKeyPressed, m_IsLMBPressed и OnKeyDown().

◆ OnKeyDown()

void OnKeyDown ( KeyCode key)
inlineprivate
140 {
141 if (key == KeyCode.KC_X)
142 {
143 }
144 }

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

◆ OnPostFrameUpdate()

void OnPostFrameUpdate ( )
inlineprivate
157 {
158 if ( GetWeaponInHands() )
159 {
162 vector cameraDirection = GetGame().GetCurrentCameraDirection();
163 vector cameraPosition = GetGame().GetCurrentCameraPosition();
164 vector usti_hlavne_position = weapon.GetSelectionPositionMS( "usti hlavne" );//usti hlavne
165 vector konec_hlavne_position = weapon.GetSelectionPositionMS( "konec hlavne" );//konec hlavne
168
169 if ( m_CurrentMode == eDebugMode.NORMAL )
170 {
172 }
173
174 if ( m_CurrentMode == eDebugMode.MUZZLE_FIRE )
175 {
177 }
178
179 if ( m_CurrentMode == eDebugMode.CAMERA_MUZZLE_HYBRID )
180 {
182 }
183
185 {
188 }
189
191
192
197 /*
198 vector pos;
199 weapon.GetProjectedCursorPos3d(pos);
200 Debug.RemoveShape(temp_shape);
201 temp_shape = Debug.DrawSphere(pos, 0.1, Colors.GREEN);
202 */
203 }
204 }
static Shape DrawLines(vector[] positions, int count, int color=0xFFFFFFFF, int flags=0)
Definition Debug.c:401
void DrawLineOfFireCameraHybrid(vector usti_hlavne_position, vector camera_dir, vector camera_pos, vector konec_hlavne_position)
Definition WeaponDebug.c:354
void OrderTrailArray()
Definition WeaponDebug.c:251
void DisplayGeneralInfo()
Definition WeaponDebug.c:285
Weapon GetWeaponInHands()
Definition WeaponDebug.c:52
void DrawBarrelMemoryPoints(vector begin_point, vector end_point)
Definition WeaponDebug.c:206
Shape m_ShapeTrailLines
Definition WeaponDebug.c:40
void DrawEyePoint(Weapon weapon)
Definition WeaponDebug.c:266
void DisplayTargetInfo()
Definition WeaponDebug.c:299
vector m_AimTrailOrdered[BUFFER_SIZE]
Definition WeaponDebug.c:28
void AddPosToCyclicBuffer(vector pos)
Definition WeaponDebug.c:241
void DrawLineOfFireMuzzleToHit(vector begin_point, vector camera_dir, vector camera_pos)
Definition WeaponDebug.c:307
void DrawLineOfFire(vector begin_point, vector end_point)
Definition WeaponDebug.c:216
const int COLOR_YELLOW
Definition constants.c:67

Перекрестные ссылки AddPosToCyclicBuffer(), BUFFER_SIZE, COLOR_YELLOW, DisplayGeneralInfo(), DisplayTargetInfo(), DrawBarrelMemoryPoints(), DrawEyePoint(), DrawLineOfFire(), DrawLineOfFireCameraHybrid(), DrawLineOfFireMuzzleToHit(), Debug::DrawLines(), GetGame(), GetWeaponInHands(), m_AimTrailOrdered, m_CurrentMode, m_IsDrawKeyHeldDown, m_ShapeTrailLines, OrderTrailArray() и RemoveAllShapes().

◆ OrderTrailArray()

void OrderTrailArray ( )
inlineprivate
252 {
253 int unordered_index;
254
255 for (int i = 0; i < BUFFER_SIZE; i++)
256 {
259 {
261 }
263 }
264 }

Перекрестные ссылки BUFFER_SIZE, m_AimTrailCyclic, m_AimTrailOrdered и m_BufferIndex.

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

◆ RemoveAllShapes()

Поля

◆ BUFFER_SIZE

const int BUFFER_SIZE = 1000
private

◆ CAMERA_BULLET_ORIGIN_OFFSET

const float CAMERA_BULLET_ORIGIN_OFFSET = 1
private

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

◆ CAMERA_TRACE_MIN_DISTANCE_TOLERANCE

const float CAMERA_TRACE_MIN_DISTANCE_TOLERANCE = 0.3
private

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

◆ COLLISIONS_DISTANCE_TOLERANCE

const float COLLISIONS_DISTANCE_TOLERANCE = 0.01
private

◆ m_AimTrailCyclic

vector m_AimTrailCyclic[BUFFER_SIZE]
private

Используется в AddPosToCyclicBuffer() и OrderTrailArray().

◆ m_AimTrailOrdered

vector m_AimTrailOrdered[BUFFER_SIZE]
private

Используется в OnPostFrameUpdate() и OrderTrailArray().

◆ m_BufferIndex

int m_BufferIndex
private

Используется в AddPosToCyclicBuffer() и OrderTrailArray().

◆ m_CurrentMode

eDebugMode m_CurrentMode
private

Используется в CycleDebugMode(), DisplayGeneralInfo() и OnPostFrameUpdate().

◆ m_DebugModesNames

ref map<int, string> m_DebugModesNames = new map<int, string>
private

Используется в DisplayGeneralInfo() и WeaponDebug().

◆ m_HitShape

Shape m_HitShape
private

◆ m_HitShape2

Shape m_HitShape2
private

Используется в DrawLineOfFireMuzzleToHit() и RemoveAllShapes().

◆ m_HitShape3

Shape m_HitShape3
private

Используется в DrawLineOfFireMuzzleToHit() и RemoveAllShapes().

◆ m_HitShape4

Shape m_HitShape4
private

Используется в DrawLineOfFireCameraHybrid() и RemoveAllShapes().

◆ m_IsDrawKeyHeldDown

bool m_IsDrawKeyHeldDown
private

◆ m_IsFireKeyPressed

bool m_IsFireKeyPressed
private

◆ m_IsLMBPressed

bool m_IsLMBPressed
private

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

◆ m_IsToggleKeyPressed

bool m_IsToggleKeyPressed
private

◆ m_PermanentLine1

Shape m_PermanentLine1
private

◆ m_PermanentLine2

Shape m_PermanentLine2
private

◆ m_PermanentShape1

Shape m_PermanentShape1
private

Используется в DrawLineOfFireCameraHybrid() и RemoveAllShapes().

◆ m_PermanentShape2

Shape m_PermanentShape2
private

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

◆ m_Shape_konec

Shape m_Shape_konec
private

Используется в DrawBarrelMemoryPoints() и RemoveAllShapes().

◆ m_Shape_usti

Shape m_Shape_usti
private

Используется в DrawBarrelMemoryPoints() и RemoveAllShapes().

◆ m_ShapeEye

Shape m_ShapeEye
private

Используется в DrawEyePoint() и RemoveAllShapes().

◆ m_ShapeFireDirCamera

Shape m_ShapeFireDirCamera
private

Используется в DrawLineOfFireMuzzleToHit() и RemoveAllShapes().

◆ m_ShapeFireDirection1

Shape m_ShapeFireDirection1
private

Используется в DrawLineOfFire() и RemoveAllShapes().

◆ m_ShapeFireDirection2

Shape m_ShapeFireDirection2
private

Используется в DrawLineOfFire() и RemoveAllShapes().

◆ m_ShapeTrailLines

Shape m_ShapeTrailLines
private

Используется в OnPostFrameUpdate() и RemoveAllShapes().

◆ m_TargetDistance

float m_TargetDistance
private

◆ m_WeaponInHands

Weapon m_WeaponInHands
private

◆ MAX_MUZZLE_DISTANCE_TOLERANCE

const float MAX_MUZZLE_DISTANCE_TOLERANCE = 20
private

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


Объявления и описания членов класса находятся в файле: