File: CastleCameras.TWalkCamera.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (1756 lines) | stat: -rw-r--r-- 128,161 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: CastleCameras: Class TWalkCamera</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<a name="TWalkCamera"></a><h1 class="cio">Class TWalkCamera</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Hierarchy">Hierarchy</a></td><td><a class="section" href="#PasDoc-Fields">Fields</a></td><td><a class="section" href="#PasDoc-Methods">Methods</a></td><td><a class="section" href="#PasDoc-Properties">Properties</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="unit">Unit</h2>
<p class="unitlink">
<a  href="CastleCameras.html">CastleCameras</a></p>
<h2 class="declaration">Declaration</h2>
<p class="declaration">
<code>type TWalkCamera = class(<a class="normal" href="CastleCameras.TCamera.html">TCamera</a>)</code></p>
<h2 class="description">Description</h2>
<p>
Navigation by walking (first-person-shooter-like moving) in 3D scene. Camera is defined by it's position, looking direction and up vector, user can rotate and move camera using various keys.</p>
<a name="PasDoc-Hierarchy"></a><h2 class="hierarchy">Hierarchy</h2>
<ul class="hierarchy"><li class="ancestor">TComponent</li>
<li class="ancestor"><a class="normal" href="CastleUIControls.TInputListener.html">TInputListener</a></li>
<li class="ancestor"><a class="normal" href="CastleCameras.TCamera.html">TCamera</a></li>
<li class="thisitem">TWalkCamera</li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Fields"></a><h3 class="summary">Fields</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedStart">DefaultFallSpeedStart</a></b> = 0.5;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultGrowSpeed">DefaultGrowSpeed</a></b> = 1.0;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbing">DefaultHeadBobbing</a></b> = 0.02;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultCrouchHeight">DefaultCrouchHeight</a></b> = 0.5;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultJumpMaxHeight">DefaultJumpMaxHeight</a></b> = 1.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultMinAngleRadFromGravityUp">DefaultMinAngleRadFromGravityUp</a></b> =  Pi / 18;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultRotationHorizontalSpeed">DefaultRotationHorizontalSpeed</a></b> = 150;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultRotationVerticalSpeed">DefaultRotationVerticalSpeed</a></b> = 100;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedIncrease">DefaultFallSpeedIncrease</a></b> = 13/12;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookHorizontalSensitivity">DefaultMouseLookHorizontalSensitivity</a></b> = 0.09;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookVerticalSensitivity">DefaultMouseLookVerticalSensitivity</a></b> = 0.09;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbingTime">DefaultHeadBobbingTime</a></b> = 0.5;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultJumpHorizontalSpeedMultiply">DefaultJumpHorizontalSpeedMultiply</a></b> = 2.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultJumpTime">DefaultJumpTime</a></b> = 1.0 / 8.0;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingHorizontalRotationSpeed">DefaultMouseDraggingHorizontalRotationSpeed</a></b> = 0.1;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>internal const <b><a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingVerticalRotationSpeed">DefaultMouseDraggingVerticalRotationSpeed</a></b> = 0.1;</code></td>
</tr>
</table>
<a name="PasDoc-Methods"></a><h3 class="summary">Methods</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#Height">Height</a></b>(const APosition: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; out AIsAbove: boolean; out AnAboveHeight: Single; out AnAboveGround: <a  href="CastleTriangles.html#P3DTriangle">P3DTriangle</a>); virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>constructor <b><a  href="CastleCameras.TWalkCamera.html#Create">Create</a></b>(AOwner: TComponent); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>destructor <b><a  href="CastleCameras.TWalkCamera.html#Destroy">Destroy</a></b>; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#Matrix">Matrix</a></b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#RotationMatrix">RotationMatrix</a></b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#Update">Update</a></b>(const SecondsPassed: Single; var HandleInput: boolean); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#AllowSuspendForInput">AllowSuspendForInput</a></b>: boolean; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#Press">Press</a></b>(const Event: <a  href="CastleKeysMouse.TInputPressRelease.html">TInputPressRelease</a>): boolean; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#SensorTranslation">SensorTranslation</a></b>(const X, Y, Z, Length: Double; const SecondsPassed: Single): boolean; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#SensorRotation">SensorRotation</a></b>(const X, Y, Z, Angle: Double; const SecondsPassed: Single): boolean; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#DoMoveAllowed">DoMoveAllowed</a></b>(const ProposedNewPos: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; out NewPos: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const BecauseOfGravity: boolean): boolean; virtual;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#DirectionInGravityPlane">DirectionInGravityPlane</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#Init">Init</a></b>(const AInitialPosition, AInitialDirection, AInitialUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const APreferredHeight: Single; const ARadius: Single); overload;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#Init">Init</a></b>(const box: <a  href="CastleBoxes.TBox3D.html">TBox3D</a>; const ARadius: Single); overload;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#Motion">Motion</a></b>(const Event: <a  href="CastleKeysMouse.TInputMotion.html">TInputMotion</a>): boolean; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#CorrectPreferredHeight">CorrectPreferredHeight</a></b>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#CancelFalling">CancelFalling</a></b>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#MaxJumpDistance">MaxJumpDistance</a></b>: Single;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#RealPreferredHeight">RealPreferredHeight</a></b>: Single;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#FallOnTheGround">FallOnTheGround</a></b>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#GetView">GetView</a></b>(out APos, ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>); override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#GetView">GetView</a></b>(out APos, ADir, AUp, AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#GetPosition">GetPosition</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#GetGravityUp">GetGravityUp</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#SetView">SetView</a></b>(const ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true);</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#SetView">SetView</a></b>(const APos, ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true); override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#SetView">SetView</a></b>(const APos, ADir, AUp, AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true); override;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>function <b><a  href="CastleCameras.TWalkCamera.html#GetNavigationType">GetNavigationType</a></b>: <a  href="CastleCameras.html#TNavigationType">TNavigationType</a>; override;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>procedure <b><a  href="CastleCameras.TWalkCamera.html#UpPrefer">UpPrefer</a></b>(const AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>);</code></td>
</tr>
</table>
<a name="PasDoc-Properties"></a><h3 class="summary">Properties</h3>
<table class="summary wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a></b>: <a  href="CastleCameras.html#TMoveAllowedFunc">TMoveAllowedFunc</a> read FOnMoveAllowed write FOnMoveAllowed;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Position">Position</a></b> : <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FPosition  write SetPosition;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Direction">Direction</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FDirection write SetDirection;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Up">Up</a></b>       : <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FUp        write SetUp;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a></b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FGravityUp write SetGravityUp;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#PreferGravityUpForRotations">PreferGravityUpForRotations</a></b>: boolean
      read FPreferGravityUpForRotations write FPreferGravityUpForRotations default true;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a></b>: boolean
      read FPreferGravityUpForMoving write FPreferGravityUpForMoving default true;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MinAngleRadFromGravityUp">MinAngleRadFromGravityUp</a></b>: Single
      read FMinAngleRadFromGravityUp write FMinAngleRadFromGravityUp
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMinAngleRadFromGravityUp">DefaultMinAngleRadFromGravityUp</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseLook">MouseLook</a></b>: boolean read FMouseLook write SetMouseLook default false;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseLookHorizontalSensitivity">MouseLookHorizontalSensitivity</a></b>: Single
      read FMouseLookHorizontalSensitivity write FMouseLookHorizontalSensitivity
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookHorizontalSensitivity">DefaultMouseLookHorizontalSensitivity</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseLookVerticalSensitivity">MouseLookVerticalSensitivity</a></b>: Single
      read FMouseLookVerticalSensitivity write FMouseLookVerticalSensitivity
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookVerticalSensitivity">DefaultMouseLookVerticalSensitivity</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#InvertVerticalMouseLook">InvertVerticalMouseLook</a></b>: boolean
      read FInvertVerticalMouseLook write FInvertVerticalMouseLook
      default false;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseDragMode">MouseDragMode</a></b>: <a  href="CastleCameras.html#TMouseDragMode">TMouseDragMode</a>
      read FMouseDragMode write FMouseDragMode default mdWalk;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a></b>: boolean
      read FGravity write FGravity default false;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a></b>: Single
      read FPreferredHeight write FPreferredHeight default 0.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#ClimbHeight">ClimbHeight</a></b>: Single read FClimbHeight write FClimbHeight;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a></b>: <a  href="CastleCameras.html#THeightEvent">THeightEvent</a> read FOnHeight write FOnHeight;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#OnFall">OnFall</a></b>: <a  href="CastleCameras.html#TFallNotifyFunc">TFallNotifyFunc</a>
      read FOnFall write FOnFall;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#FallSpeedStart">FallSpeedStart</a></b>: Single
      read FFallSpeedStart write FFallSpeedStart
      default <a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedStart">DefaultFallSpeedStart</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#FallSpeedIncrease">FallSpeedIncrease</a></b>: Single
      read FFallSpeedIncrease write FFallSpeedIncrease
      default <a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedIncrease">DefaultFallSpeedIncrease</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Falling">Falling</a></b>: boolean read FFalling write FFalling;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#FallingEffect">FallingEffect</a></b>: boolean
      read FFallingEffect write FFallingEffect default true;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#GrowSpeed">GrowSpeed</a></b>: Single
      read FGrowSpeed write FGrowSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultGrowSpeed">DefaultGrowSpeed</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#JumpMaxHeight">JumpMaxHeight</a></b>: Single
      read FJumpMaxHeight write FJumpMaxHeight default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpMaxHeight">DefaultJumpMaxHeight</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#IsJumping">IsJumping</a></b>: boolean read FIsJumping;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#JumpHorizontalSpeedMultiply">JumpHorizontalSpeedMultiply</a></b>: Single
      read FJumpHorizontalSpeedMultiply write FJumpHorizontalSpeedMultiply
      default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpHorizontalSpeedMultiply">DefaultJumpHorizontalSpeedMultiply</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#JumpTime">JumpTime</a></b>: Single read FJumpTime write FJumpTime
      default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpTime">DefaultJumpTime</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#HeadBobbing">HeadBobbing</a></b>: Single
      read FHeadBobbing write FHeadBobbing default <a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbing">DefaultHeadBobbing</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#HeadBobbingTime">HeadBobbingTime</a></b>: Single
      read FHeadBobbingTime write FHeadBobbingTime
      default <a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbingTime">DefaultHeadBobbingTime</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#CrouchHeight">CrouchHeight</a></b>: Single
      read FCrouchHeight write FCrouchHeight default <a  href="CastleCameras.TWalkCamera.html#DefaultCrouchHeight">DefaultCrouchHeight</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#IsCrouching">IsCrouching</a></b>: boolean read FIsCrouching;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#FallingOnTheGround">FallingOnTheGround</a></b>: boolean read FFallingOnTheGround;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#IsOnTheGround">IsOnTheGround</a></b>: boolean read FIsOnTheGround;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#IsWalkingOnTheGround">IsWalkingOnTheGround</a></b>: boolean read FIsWalkingOnTheGround;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#IsAbove">IsAbove</a></b>: boolean read FIsAbove;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#AboveHeight">AboveHeight</a></b>: Single read FAboveHeight;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#AboveGround">AboveGround</a></b>: <a  href="CastleTriangles.html#P3DTriangle">P3DTriangle</a> read FAboveGround write FAboveGround;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_Forward">Input_Forward</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Forward;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_Backward">Input_Backward</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Backward;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_LeftRot">Input_LeftRot</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_LeftRot;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_RightRot">Input_RightRot</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_RightRot;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_LeftStrafe">Input_LeftStrafe</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_LeftStrafe;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_RightStrafe">Input_RightStrafe</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_RightStrafe;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_UpRotate">Input_UpRotate</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_UpRotate;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_DownRotate">Input_DownRotate</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_DownRotate;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_IncreasePreferredHeight">Input_IncreasePreferredHeight</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_IncreasePreferredHeight;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_DecreasePreferredHeight">Input_DecreasePreferredHeight</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_DecreasePreferredHeight;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_GravityUp">Input_GravityUp</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_GravityUp;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_Run">Input_Run</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Run;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_MoveSpeedInc">Input_MoveSpeedInc</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_MoveSpeedInc;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_MoveSpeedDec">Input_MoveSpeedDec</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_MoveSpeedDec;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_Jump">Input_Jump</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Jump;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#Input_Crouch">Input_Crouch</a></b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Crouch;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MoveForward">MoveForward</a></b>: boolean read FMoveForward write FMoveForward;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MoveBackward">MoveBackward</a></b>: boolean read FMoveBackward write FMoveBackward;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#AllowSlowerRotations">AllowSlowerRotations</a></b>: boolean
      read FAllowSlowerRotations write FAllowSlowerRotations
      default true;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#CheckModsDown">CheckModsDown</a></b>: boolean
      read FCheckModsDown write FCheckModsDown
      default true;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MoveHorizontalSpeed">MoveHorizontalSpeed</a></b>: Single
      read FMoveHorizontalSpeed write FMoveHorizontalSpeed default 1.0;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a></b>: Single
      read FMoveVerticalSpeed write FMoveVerticalSpeed default 1.0;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a></b>: Single read FMoveSpeed write FMoveSpeed default 1.0;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#RotationHorizontalSpeed">RotationHorizontalSpeed</a></b>: Single
      read FRotationHorizontalSpeed write FRotationHorizontalSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultRotationHorizontalSpeed">DefaultRotationHorizontalSpeed</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#RotationVerticalSpeed">RotationVerticalSpeed</a></b>: Single
      read FRotationVerticalSpeed write FRotationVerticalSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultRotationVerticalSpeed">DefaultRotationVerticalSpeed</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseDraggingHorizontalRotationSpeed">MouseDraggingHorizontalRotationSpeed</a></b>: Single
      read FMouseDraggingHorizontalRotationSpeed write FMouseDraggingHorizontalRotationSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingHorizontalRotationSpeed">DefaultMouseDraggingHorizontalRotationSpeed</a>;</code></td>
</tr>
<tr class="list2">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#MouseDraggingVerticalRotationSpeed">MouseDraggingVerticalRotationSpeed</a></b>: Single
      read FMouseDraggingVerticalRotationSpeed write FMouseDraggingVerticalRotationSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingVerticalRotationSpeed">DefaultMouseDraggingVerticalRotationSpeed</a>;</code></td>
</tr>
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><code>property <b><a  href="CastleCameras.TWalkCamera.html#RotationHorizontalPivot">RotationHorizontalPivot</a></b>: Single
      read FRotationHorizontalPivot write FRotationHorizontalPivot default 0;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Fields</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultFallSpeedStart"></a><code>internal const <b>DefaultFallSpeedStart</b> = 0.5;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultGrowSpeed"></a><code>internal const <b>DefaultGrowSpeed</b> = 1.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultHeadBobbing"></a><code>internal const <b>DefaultHeadBobbing</b> = 0.02;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultCrouchHeight"></a><code>internal const <b>DefaultCrouchHeight</b> = 0.5;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultJumpMaxHeight"></a><code>internal const <b>DefaultJumpMaxHeight</b> = 1.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMinAngleRadFromGravityUp"></a><code>internal const <b>DefaultMinAngleRadFromGravityUp</b> =  Pi / 18;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultRotationHorizontalSpeed"></a><code>internal const <b>DefaultRotationHorizontalSpeed</b> = 150;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultRotationVerticalSpeed"></a><code>internal const <b>DefaultRotationVerticalSpeed</b> = 100;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultFallSpeedIncrease"></a><code>internal const <b>DefaultFallSpeedIncrease</b> = 13/12;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMouseLookHorizontalSensitivity"></a><code>internal const <b>DefaultMouseLookHorizontalSensitivity</b> = 0.09;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMouseLookVerticalSensitivity"></a><code>internal const <b>DefaultMouseLookVerticalSensitivity</b> = 0.09;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultHeadBobbingTime"></a><code>internal const <b>DefaultHeadBobbingTime</b> = 0.5;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultJumpHorizontalSpeedMultiply"></a><code>internal const <b>DefaultJumpHorizontalSpeedMultiply</b> = 2.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultJumpTime"></a><code>internal const <b>DefaultJumpTime</b> = 1.0 / 8.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMouseDraggingHorizontalRotationSpeed"></a><code>internal const <b>DefaultMouseDraggingHorizontalRotationSpeed</b> = 0.1;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DefaultMouseDraggingVerticalRotationSpeed"></a><code>internal const <b>DefaultMouseDraggingVerticalRotationSpeed</b> = 0.1;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<h3 class="detail">Methods</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="protected.gif" alt="Protected" title="Protected"></a></td>
<td class="itemcode"><a name="Height"></a><code>procedure <b>Height</b>(const APosition: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; out AIsAbove: boolean; out AnAboveHeight: Single; out AnAboveGround: <a  href="CastleTriangles.html#P3DTriangle">P3DTriangle</a>); virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
Call <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a> callback.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Create"></a><code>constructor <b>Create</b>(AOwner: TComponent); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Destroy"></a><code>destructor <b>Destroy</b>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Matrix"></a><code>function <b>Matrix</b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="RotationMatrix"></a><code>function <b>RotationMatrix</b>: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Update"></a><code>procedure <b>Update</b>(const SecondsPassed: Single; var HandleInput: boolean); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AllowSuspendForInput"></a><code>function <b>AllowSuspendForInput</b>: boolean; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Press"></a><code>function <b>Press</b>(const Event: <a  href="CastleKeysMouse.TInputPressRelease.html">TInputPressRelease</a>): boolean; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SensorTranslation"></a><code>function <b>SensorTranslation</b>(const X, Y, Z, Length: Double; const SecondsPassed: Single): boolean; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SensorRotation"></a><code>function <b>SensorRotation</b>(const X, Y, Z, Angle: Double; const SecondsPassed: Single): boolean; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DoMoveAllowed"></a><code>function <b>DoMoveAllowed</b>(const ProposedNewPos: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; out NewPos: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const BecauseOfGravity: boolean): boolean; virtual;</code></td>
</tr>
<tr><td colspan="2">
<p>
<code>DoMoveAllowed</code> will be used when user will move in the scene, i.e. when user will want to change <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a>.</p>
<p>


<p>ProposedNewPos is the position where the user wants to move (current user position is always stored in Position, so you can calculate move direction by ProposedNewPos - Position).

<p>This is the place to &quot;plug in&quot; your collision detection into camera.

<p>Returns false if no move is allowed. Otherwise returns true and sets NewPos to the position where user should be moved. E.g. if you're doing a simple test for collisions (with yes/no results), you will always want to set NewPos to ProposedNewPos when returning true. But you can also do more sophisticated calculations and sometimes not allow user to move to ProposedNewPos, but allow him to move instead to some other close position. E.g. look what's happening in quake (or just any first-person 3d game) when you're trying to walk &quot;into the wall&quot; at angle like 30 degrees: you're blocked, i.e. you obviously can't walk into the wall, but your position changes a bit and you're slowly moving alongside the wall. That's how you can use NewPos: you can return true and set NewPos to something that is not exactly ProposedNewPos (but is close to ProposedNewPos).

<p>Note that it's allowed to modify NewPos when returning false. This is meaningless, but may be comfortable for implementor of <code>DoMoveAllowed</code>.

<p>BecauseOfGravity says whether this move is caused by gravity dragging the camera down. Can happen only if <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>. You can use BecauseOfGravity to control <code>DoMoveAllowed</code> behavior &mdash; e.g. view3dscene will not allow camera to move lower that some minimal plane when BecauseOfGravity (because this would mean that camera falls down infinitely), on the other hand when BecauseOfGravity is <code>False</code> moving outside bounding box is allowed (to allow camera to look at the scene from &quot;the outside&quot;).

<p>Basic implementation of <code>DoMoveAllowed</code> in this class: If <a class="normal" href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a> = nil then returns true and sets NewPos to ProposedNewPos (so move is always allowed). Else calls <a class="normal" href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="DirectionInGravityPlane"></a><code>function <b>DirectionInGravityPlane</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Return <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> vector rotated such that it is orthogonal to <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>. This way it returns <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> projected on the gravity horizontal plane, which neutralizes such things like raising / bowing your head. Result is always normalized (length 1).

<p>Note that when <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> are parallel, this just returns current <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> &mdash; because in such case we can't project <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> on the horizontal plane.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Init"></a><code>procedure <b>Init</b>(const AInitialPosition, AInitialDirection, AInitialUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const APreferredHeight: Single; const ARadius: Single); overload;</code></td>
</tr>
<tr><td colspan="2">
<p>
Set the most important properties of this camera, in one call. Sets initial camera properties (<a class="normal" href="CastleCameras.TCamera.html#InitialPosition">InitialPosition</a>, <a class="normal" href="CastleCameras.TCamera.html#InitialDirection">InitialDirection</a>, <a class="normal" href="CastleCameras.TCamera.html#InitialUp">InitialUp</a>), sets current camera properties to them (Position := <a class="normal" href="CastleCameras.TCamera.html#InitialPosition">InitialPosition</a> and so on).

<p>Given here AInitialDirection, AInitialUp, AGravityUp will be normalized, and AInitialUp will be adjusted to be orthogonal to AInitialDirection (see <a class="normal" href="CastleCameras.TCamera.html#SetInitialView">SetInitialView</a>).

<p>Sets also <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> and Radius. <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> may be adjusted to be sensible (by calling <a class="normal" href="CastleCameras.TWalkCamera.html#CorrectPreferredHeight">CorrectPreferredHeight</a>(ARadius)). You can pass ARadius = 0.0 if you really don't want this <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> adjustment.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Init"></a><code>procedure <b>Init</b>(const box: <a  href="CastleBoxes.TBox3D.html">TBox3D</a>; const ARadius: Single); overload;</code></td>
</tr>
<tr><td colspan="2">
<p>
Alternative Init that sets camera properties such that an object inside Box is more or less &quot;visible good&quot;. Sets InitialCameraXxx properties to make it look right, sets current CameraXxx properties to InitialCameraXxx. Sets <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> to the same thing as <a class="normal" href="CastleCameras.TCamera.html#InitialUp">InitialUp</a>. Sets also <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> to make it behave &quot;sensibly&quot;.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Motion"></a><code>function <b>Motion</b>(const Event: <a  href="CastleKeysMouse.TInputMotion.html">TInputMotion</a>): boolean; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CorrectPreferredHeight"></a><code>procedure <b>CorrectPreferredHeight</b>;</code></td>
</tr>
<tr><td colspan="2">
<p>
This procedure corrects <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> based on your Radius and on current <a class="normal" href="CastleCameras.TWalkCamera.html#HeadBobbing">HeadBobbing</a>.

<p>Exactly what and why is done: if you do any kind of collision detection with some Radius, then you should make sure that <a class="normal" href="CastleCameras.TWalkCamera.html#RealPreferredHeight">RealPreferredHeight</a> is always &gt;= of your Radius, otherwise strange effects may happen when crouching or when head bobbing forces camera to go down.

<p>Exactly, the required equation is </p>

<pre class="preformatted">
  MinimumRealPreferredHeight :=
    PreferredHeight * CrouchHeight * (1 - HeadBobbing);
</pre>

<p> and always must be </p>

<pre class="preformatted">
  MinimumRealPreferredHeight &gt;= RealPreferredHeight
</pre>

<p>

<p>Reasoning: otherwise this class would &quot;want camera to fall down&quot; (because we will always be higher than <a class="normal" href="CastleCameras.TWalkCamera.html#RealPreferredHeight">RealPreferredHeight</a>) but your <a class="normal" href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a> would not allow it (because Radius would not allow it). Note that this class doesn't keep value of your Radius, because collision detection is (by design) never done by this class &mdash; it's always delegated to <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a>. Also, it's not exactly forced <i>how</i> you should force this condition to hold. Sometimes the good solution is to adjust Radius, not to adjust <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>.

<p>Anyway, this method will make sure that this condition holds by eventually adjusting (making larger) <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>. Note that for Radius = 0.0 this will always leave <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> as it is.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CancelFalling"></a><code>procedure <b>CancelFalling</b>;</code></td>
</tr>
<tr><td colspan="2">
<p>
If Falling, then this will force Falling to false <b>without calling OnFallenDown</b>. It's much like forcing the opinion that &quot;camera is not falling down right now&quot;.

<p>Of course, if in the nearest Update we will find out (using <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a>) that camera is too high above the ground, then we will start falling down again, setting Falling back to true. (but then we will start falling down from the beginning, starting at given <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> and with initial falling down speed).

<p>This is useful to call if you just changed <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> because e.g. the player teleported somewhere (or e.g. game levels changed). In this case you just want to forget the fact that camera was falling down &mdash; no consequences (like lowering player's health, fadeout etc.).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MaxJumpDistance"></a><code>function <b>MaxJumpDistance</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
Returns just <a class="normal" href="CastleCameras.TWalkCamera.html#JumpMaxHeight">JumpMaxHeight</a> * <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>, see <a class="normal" href="CastleCameras.TWalkCamera.html#JumpMaxHeight">JumpMaxHeight</a> for explanation.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="RealPreferredHeight"></a><code>function <b>RealPreferredHeight</b>: Single;</code></td>
</tr>
<tr><td colspan="2">
<p>
This is <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> slightly modified by head bobbing and crouch. It can be useful for collision detection between camera and something.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallOnTheGround"></a><code>procedure <b>FallOnTheGround</b>;</code></td>
</tr>
<tr><td colspan="2">
<p>
This makes a visual effect of camera falling down horizontally on the ground. Nice to use when player died, and you want to show that it's body falled on the ground. This works by gradually changing <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> such that it gets orthogonal to <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GetView"></a><code>procedure <b>GetView</b>(out APos, ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GetView"></a><code>procedure <b>GetView</b>(out APos, ADir, AUp, AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GetPosition"></a><code>function <b>GetPosition</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GetGravityUp"></a><code>function <b>GetGravityUp</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SetView"></a><code>procedure <b>SetView</b>(const ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true);</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SetView"></a><code>procedure <b>SetView</b>(const APos, ADir, AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="SetView"></a><code>procedure <b>SetView</b>(const APos, ADir, AUp, AGravityUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const AdjustUp: boolean = true); override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GetNavigationType"></a><code>function <b>GetNavigationType</b>: <a  href="CastleCameras.html#TNavigationType">TNavigationType</a>; override;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="UpPrefer"></a><code>procedure <b>UpPrefer</b>(const AUp: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>);</code></td>
</tr>
<tr><td colspan="2">
<p>
Change up vector, keeping the direction unchanged. If necessary, the up vector provided here will be fixed to be orthogonal to direction. See <a class="normal" href="Castle3D.T3DOrient.html#UpPrefer">T3DOrient.UpPrefer</a> for detailed documentation what this does.</p>
</td></tr>
</table>
<h3 class="detail">Properties</h3>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="OnMoveAllowed"></a><code>property <b>OnMoveAllowed</b>: <a  href="CastleCameras.html#TMoveAllowedFunc">TMoveAllowedFunc</a> read FOnMoveAllowed write FOnMoveAllowed;</code></td>
</tr>
<tr><td colspan="2">
<p>
This is used by <a class="normal" href="CastleCameras.TWalkCamera.html#DoMoveAllowed">DoMoveAllowed</a>, see there for description.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Position"></a><code>property <b>Position</b> : <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FPosition  write SetPosition;</code></td>
</tr>
<tr><td colspan="2">
<p>
Camera position, looking direction and up vector.

<p>Initially (after creating this object) they are equal to <a class="normal" href="CastleCameras.TCamera.html#InitialPosition">InitialPosition</a>, <a class="normal" href="CastleCameras.TCamera.html#InitialDirection">InitialDirection</a>, <a class="normal" href="CastleCameras.TCamera.html#InitialUp">InitialUp</a>. Also <a class="normal" href="CastleCameras.TWalkCamera.html#Init">Init</a> and <a class="normal" href="CastleCameras.TCamera.html#GoToInitial">GoToInitial</a> methods reset them to these initial values.

<p>The <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> vectors should always be normalized (have length 1). When setting them by these properties, we will normalize them automatically.

<p>Note that since engine &gt;= 2.2.0 the <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> vector should always be normalized (length 1), and so you cannot change move speed by scaling this vector. Use <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#MoveHorizontalSpeed">MoveHorizontalSpeed</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a> instead.

<p>When setting <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> will always be automatically adjusted to be orthogonal to <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>. And vice versa &mdash; when setting <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> will be adjusted.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Direction"></a><code>property <b>Direction</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FDirection write SetDirection;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Up"></a><code>property <b>Up</b>       : <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FUp        write SetUp;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GravityUp"></a><code>property <b>GravityUp</b>: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> read FGravityUp write SetGravityUp;</code></td>
</tr>
<tr><td colspan="2">
<p>
This is the upward direction of the world in which player moves. Must be always normalized (when setting this property, we take care to normalize it).

<p>This indicates how <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> works.

<p>This is also the &quot;normal&quot; value for both <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> and <a class="normal" href="CastleCameras.TCamera.html#InitialUp">InitialUp</a> &mdash; one that means that player is looking straight foward. This is used for features like <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForRotations">PreferGravityUpForRotations</a> and/or <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a>.

<p>The default value of this vector is (0, 1, 0) (same as the default <a class="normal" href="CastleCameras.TCamera.html#InitialUp">InitialUp</a> and Up vectors).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="PreferGravityUpForRotations"></a><code>property <b>PreferGravityUpForRotations</b>: boolean
      read FPreferGravityUpForRotations write FPreferGravityUpForRotations default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
If <code>PreferGravityUpForRotations</code> or <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> then various operations are done with respect to <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>, otherwise they are done with respect to current <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a>.

<p>With <code>PreferGravityUpForRotations</code>, this affects rotations: horizontal rotations (<a class="normal" href="CastleCameras.TWalkCamera.html#Input_LeftRot">Input_LeftRot</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Input_RightRot">Input_RightRot</a>) and rotations caused by <a class="normal" href="CastleCameras.TWalkCamera.html#MouseLook">MouseLook</a>. Also vertical rotations are bounded by <a class="normal" href="CastleCameras.TWalkCamera.html#MinAngleRadFromGravityUp">MinAngleRadFromGravityUp</a> when <code>PreferGravityUpForRotations</code>.

<p>Note that you can change it freely at runtime, and when you set <code>PreferGravityUpForRotations</code> from <code>False</code> to <code>True</code> then in nearest Update calls <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> will be gradually fixed, so that <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> are on the same plane. Also <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> may be adjusted to honour <a class="normal" href="CastleCameras.TWalkCamera.html#MinAngleRadFromGravityUp">MinAngleRadFromGravityUp</a>.

<p>With <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a>, this affects moving: horizontal moving (forward, backward, strafe), and vertical moving (<a class="normal" href="CastleCameras.TWalkCamera.html#Input_Jump">Input_Jump</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Crouch">Input_Crouch</a> when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>False</code>). E.g. when <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> then forward/backward keys are tied to horizontal plane defined by <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>. When not <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> then forward/backward try to move you just in the <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>. Which is usually more handy when e.g. simulating flying.

<p>It's a delicate decision how to set them, because generally all the decisions are &quot;somewhat correct&quot; &mdash; they just sometimes &quot;feel incorrect&quot; for player.

<p></p>

<ul class="paragraph_spacing">
  <li><p> First of all, if the scene is not &quot;naturally oriented&quot; around <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>, then you <b>may</b> set <code>PreferGravityUpForRotations</code> as <code>False</code> and you <b>should</b> leave <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> to <code>False</code>.

<p>By the scene &quot;naturally oriented around <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>&quot; I mean that we have some proper <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>, not just some guessed <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> that may be incorrect. For example when view3dscene loads a VRML model without any camera definition then it assumes that &quot;up vector&quot; is (0, 1, 0), because this is more-or-less VRML standard suggested by VRML spec. But this may be very inappopriate, for example the scene may be actually oriented with (0, 0, 1) up vector in mind.

<p>Other examples of the scenes without any &quot;naturally oriented around <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>&quot; may be some &quot;outer space&quot; scene without any gravity.</p></li>
  <li><p> With <code>PreferGravityUpForRotations</code> the &quot;feeling&quot; of <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> is stronger for user, because <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> always define the same plane in 3D space (i.e. along with the 4th point, (0, 0, 0), for camera eye). Raising/bowing the head doesn't break this assumption.

<p>Without <code>PreferGravityUpForRotations</code>, we quickly start to do rotations in an awkward way &mdash; once you do some vertical rotation, you changed <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a>, and next horizontal rotation will be done versus new <a class="normal" href="CastleCameras.TWalkCamera.html#Up">Up</a>.

<p>If your <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> is good, then you generally should leave <code>PreferGravityUpForRotations</code> to <code>True</code>. Unless you really <b>want</b> the player to feel movements as &quot;awkward&quot;, e.g. when you want to simulate this &quot;outer space without any gravity&quot; feeling.</p></li>
  <li><p> If your <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> is good, then you generally should set <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> just like Gravity.

<p>E.g. when the player is flying / swimming etc. he will probably prefer <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> = <code>False</code>, because this way he will not have to press <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Jump">Input_Jump</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Crouch">Input_Crouch</a>. Simply pressing <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Forward">Input_Forward</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Backward">Input_Backward</a> and doing rotations will be enough to move freely in 3D space.

<p>When gravity works, <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> = <code>True</code> is better, otherwise player would unnecessarily try to jump when looking up.</p></li>
</ul>

<p>

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="PreferGravityUpForMoving"></a><code>property <b>PreferGravityUpForMoving</b>: boolean
      read FPreferGravityUpForMoving write FPreferGravityUpForMoving default true;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MinAngleRadFromGravityUp"></a><code>property <b>MinAngleRadFromGravityUp</b>: Single
      read FMinAngleRadFromGravityUp write FMinAngleRadFromGravityUp
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMinAngleRadFromGravityUp">DefaultMinAngleRadFromGravityUp</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
This sets the minimal angle (in radians) between <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>, and also between -<a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>. This way vertical rotations (like <a class="normal" href="CastleCameras.TWalkCamera.html#Input_UpRotate">Input_UpRotate</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Input_DownRotate">Input_DownRotate</a>) are &quot;bounded&quot; to not allow player to do something strange, i.e. bow your head too much and raise your head too much.

<p>This is used only when <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForRotations">PreferGravityUpForRotations</a> is <code>True</code> and when it's &lt;&gt; 0.0.

<p>This must be always between 0 and Pi/2. Value of Pi/2 will effectively disallow vertical rotations (although you should rather do this in a &quot;cleaner way&quot; by calling MakeClear on <a class="normal" href="CastleCameras.TWalkCamera.html#Input_UpRotate">Input_UpRotate</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#Input_DownRotate">Input_DownRotate</a>).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MouseLook"></a><code>property <b>MouseLook</b>: boolean read FMouseLook write SetMouseLook default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
Use mouse look to navigate (rotate the camera).

<p>This also makes mouse cursor of Container hidden, and forces mouse position to the middle of the window (to avoid the situation when mouse movement is blocked by screen borders).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MouseLookHorizontalSensitivity"></a><code>property <b>MouseLookHorizontalSensitivity</b>: Single
      read FMouseLookHorizontalSensitivity write FMouseLookHorizontalSensitivity
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookHorizontalSensitivity">DefaultMouseLookHorizontalSensitivity</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
These control mouse look sensitivity. They say how much angle change is produced by moving mouse by 1 pixel. You can change this, to better adjust to user.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MouseLookVerticalSensitivity"></a><code>property <b>MouseLookVerticalSensitivity</b>: Single
      read FMouseLookVerticalSensitivity write FMouseLookVerticalSensitivity
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseLookVerticalSensitivity">DefaultMouseLookVerticalSensitivity</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="InvertVerticalMouseLook"></a><code>property <b>InvertVerticalMouseLook</b>: boolean
      read FInvertVerticalMouseLook write FInvertVerticalMouseLook
      default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
If this is <code>True</code> and <a class="normal" href="CastleCameras.TWalkCamera.html#MouseLook">MouseLook</a> works, then the meaning of vertical mouse movement is inverted: when user moves mouse up, he looks down. Many players are more comfortable with such configuration, and many games implement it (usually by calling it &quot;Invert mouse&quot; for short).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MouseDragMode"></a><code>property <b>MouseDragMode</b>: <a  href="CastleCameras.html#TMouseDragMode">TMouseDragMode</a>
      read FMouseDragMode write FMouseDragMode default mdWalk;</code></td>
</tr>
<tr><td colspan="2">
<p>
What mouse dragging does. Used only when ciMouseDragging in <a class="normal" href="CastleCameras.TCamera.html#Input">Input</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Gravity"></a><code>property <b>Gravity</b>: boolean
      read FGravity write FGravity default false;</code></td>
</tr>
<tr><td colspan="2">
<p>
This unlocks a couple of features and automatic behaviors related to gravity. Gravity always drags the camera down to -<a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>.

<p>Summary of things done by gravity: </p>

<ul class="paragraph_spacing">
  <li><p>It uses <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a> to get camera height above the ground.</p></li>
  <li><p>It allows player to jump. See <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Jump">Input_Jump</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#IsJumping">IsJumping</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#JumpMaxHeight">JumpMaxHeight</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#JumpHorizontalSpeedMultiply">JumpHorizontalSpeedMultiply</a>.</p></li>
  <li><p>It allows player to crouch. See <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Crouch">Input_Crouch</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#CrouchHeight">CrouchHeight</a>.</p></li>
  <li><p>It tries to keep <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> above the ground on <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> height.</p></li>
  <li><p>When current height is too small &mdash; <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> is moved up. See <a class="normal" href="CastleCameras.TWalkCamera.html#GrowSpeed">GrowSpeed</a>.</p></li>
  <li><p>When current height is too large &mdash; we're falling down. See Falling, <a class="normal" href="CastleCameras.TWalkCamera.html#OnFall">OnFall</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#FallSpeedStart">FallSpeedStart</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#FallSpeedIncrease">FallSpeedIncrease</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#FallingEffect">FallingEffect</a>.</p></li>
  <li><p>It does head bobbing. See <a class="normal" href="CastleCameras.TWalkCamera.html#HeadBobbing">HeadBobbing</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#HeadBobbingTime">HeadBobbingTime</a>.</p></li>
</ul>

<p>

<p>While there are many properties allowing you to control gravity behavior, most of them have initial values that should be sensible in all cases. The only things that you really want to take care of are: <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a> and <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>. Everything else should basically work auto-magically.

<p>Note that Gravity setting is independent from <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForRotations">PreferGravityUpForRotations</a> or <a class="normal" href="CastleCameras.TWalkCamera.html#PreferGravityUpForMoving">PreferGravityUpForMoving</a> settings &mdash; PreferGravityUpXxx say how the player controls work, Gravity says what happens to player due to ... well, due to gravity.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="PreferredHeight"></a><code>property <b>PreferredHeight</b>: Single
      read FPreferredHeight write FPreferredHeight default 0.0;</code></td>
</tr>
<tr><td colspan="2">
<p>
When <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is on, <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> tries to stay <code>PreferredHeight</code> above the ground. Temporary it may be lower (player can shortly &quot;duck&quot; when he falls from high).

<p>This must always be &gt;= 0. You should set this to something greater than zero to get sensible behavior of some things related to <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a>, and also you should set <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a>.

<p>See <a class="normal" href="CastleCameras.TWalkCamera.html#CorrectPreferredHeight">CorrectPreferredHeight</a> for important property of <code>PreferredHeight</code> that you should keep.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="ClimbHeight"></a><code>property <b>ClimbHeight</b>: Single read FClimbHeight write FClimbHeight;</code></td>
</tr>
<tr><td colspan="2">
<p>
The tallest height that you can climb. This is checked in each single horizontal move when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> works. Must be &gt;= 0. Value 0 means there is no limit (and makes a small speedup).

<p>This is reliable to prevent user from climbing stairs and such, when vertical walls are really vertical (not just steep-almost-vertical).

<p>It's not 100% reliable to prevent player from climbing steep hills. That's because, depending on how often an event processing occurs, you actually climb using less or more steps. So even a very steep hill can be always climbed on a computer with very fast speed, because with large FPS you effectively climb it using a lot of very small steps (assuming that FPS limit is not enabled, that is <a class="normal" href="CastleWindow.TCastleApplication.html#LimitFPS">CastleWindow.TCastleApplication.LimitFPS</a> or <a class="normal" href="CastleControl.html#LimitFPS">CastleControl.LimitFPS</a> is zero).

<p>Remember that user can still try jumping to climb on high obstactes. See <a class="normal" href="CastleCameras.TWalkCamera.html#JumpMaxHeight">JumpMaxHeight</a> for a way to control jumping.

<p>For a 100% reliable way to prevent user from reaching some point, that does not rely on specific camera/gravity settings, you should build actual walls in 3D (invisible walls can be created by Collision.proxy in VRML/X3D).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="OnHeight"></a><code>property <b>OnHeight</b>: <a  href="CastleCameras.html#THeightEvent">THeightEvent</a> read FOnHeight write FOnHeight;</code></td>
</tr>
<tr><td colspan="2">
<p>
Assign here the callback (or override <a class="normal" href="CastleCameras.TWalkCamera.html#Height">Height</a>) to say what is the current height of camera above the ground. This should be calculated like collision of ray from <a class="normal" href="CastleCameras.TWalkCamera.html#Position">Position</a> in direction -<a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> with the scene. See <a class="normal" href="Castle3D.T3D.html#Height">T3D.Height</a> for specification what returned parameters mean.

<p>Implementation of <a class="normal" href="CastleCameras.TWalkCamera.html#Height">Height</a> in this class calls <code>OnHeight</code>, if assigned. (If not assigned, we assume no collision: <a class="normal" href="CastleCameras.TWalkCamera.html#IsAbove">IsAbove</a> = <code>False</code>, <a class="normal" href="CastleCameras.TWalkCamera.html#AboveHeight">AboveHeight</a> = <a class="normal" href="Castle3D.html#MaxSingle">MaxSingle</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#AboveGround">AboveGround</a> = <code>Nil</code>).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="OnFall"></a><code>property <b>OnFall</b>: <a  href="CastleCameras.html#TFallNotifyFunc">TFallNotifyFunc</a>
      read FOnFall write FOnFall;</code></td>
</tr>
<tr><td colspan="2">
<p>
Notification that we have been falling down for some time, and suddenly stopped (which means we &quot;hit the ground&quot;). Of course this is used only when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code> (it can also be called shortly after you changed <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> from <code>True</code> to <code>False</code>, so don't simply assert here that <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>).

<p>This event can be useful in games, for example to lower player's health, and/or make a visual effect (like a &quot;red out&quot; indicating pain) and/or make a sound effect (&quot;Ouch!&quot; or &quot;Thud!&quot; or such sounds). You can look at FallHeight parameter, given to the callback, e.g. to gauge how much health decreases.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallSpeedStart"></a><code>property <b>FallSpeedStart</b>: Single
      read FFallSpeedStart write FFallSpeedStart
      default <a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedStart">DefaultFallSpeedStart</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Initial speed of falling down. Of course this is used only when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is true.

<p>Note that while falling down, the camera will actually fall with greater and greated speed (this adds more realism to the gravity effect...). Note that this is always relative to <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> length. <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a> determines moving speed &mdash; and so it determines also falling speed. The default <a class="normal" href="CastleCameras.TWalkCamera.html#DefaultFallSpeedStart">DefaultFallSpeedStart</a> is chosen to be something sensible, to usually get nice effect of falling.

<p>You can change it at any time, but note that if you change this while Falling is <code>True</code>, then you will not change the &quot;current falling down speed&quot;. You will change only the falling down speed used the next time.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallSpeedIncrease"></a><code>property <b>FallSpeedIncrease</b>: Single
      read FFallSpeedIncrease write FFallSpeedIncrease
      default <a  href="CastleCameras.TWalkCamera.html#DefaultFallSpeedIncrease">DefaultFallSpeedIncrease</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
When falling down, the speed increases. Set this to 1.0 to fall down with constant speed (taken from <a class="normal" href="CastleCameras.TWalkCamera.html#FallSpeedStart">FallSpeedStart</a>).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Falling"></a><code>property <b>Falling</b>: boolean read FFalling write FFalling;</code></td>
</tr>
<tr><td colspan="2">
<p>
Are we currently falling down because of gravity.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallingEffect"></a><code>property <b>FallingEffect</b>: boolean
      read FFallingEffect write FFallingEffect default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
Make a nice dizzying camera effect when falling down. This adds temporary camera rotations simulating that you rotate randomly and helplessly when falling down.

<p>Of course this is meaningfull only when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> works.

<p>Note that changing it from <code>True</code> to <code>False</code> doesn't immediately &quot;cancel out&quot; this effect if it's currently in progress. It only prevents this effect from starting again.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="GrowSpeed"></a><code>property <b>GrowSpeed</b>: Single
      read FGrowSpeed write FGrowSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultGrowSpeed">DefaultGrowSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
When <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> works and camera height above the ground is less than <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>, then we try to &quot;grow&quot;, i.e. camera position increases along the <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a> so that camera height above the ground is closer to <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>. This property (together with length of <a class="normal" href="CastleCameras.TWalkCamera.html#Direction">Direction</a>, that always determines every moving speed) determines the speed of this growth.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="JumpMaxHeight"></a><code>property <b>JumpMaxHeight</b>: Single
      read FJumpMaxHeight write FJumpMaxHeight default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpMaxHeight">DefaultJumpMaxHeight</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
How high can you jump ? The max jump distance is calculated as <code>JumpMaxHeight</code> * <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>, see <a class="normal" href="CastleCameras.TWalkCamera.html#MaxJumpDistance">MaxJumpDistance</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="IsJumping"></a><code>property <b>IsJumping</b>: boolean read FIsJumping;</code></td>
</tr>
<tr><td colspan="2">
<p>
Camera is in the middle of a &quot;jump&quot; move right now.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="JumpHorizontalSpeedMultiply"></a><code>property <b>JumpHorizontalSpeedMultiply</b>: Single
      read FJumpHorizontalSpeedMultiply write FJumpHorizontalSpeedMultiply
      default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpHorizontalSpeedMultiply">DefaultJumpHorizontalSpeedMultiply</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Scales the speed of horizontal moving during jump.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="JumpTime"></a><code>property <b>JumpTime</b>: Single read FJumpTime write FJumpTime
      default <a  href="CastleCameras.TWalkCamera.html#DefaultJumpTime">DefaultJumpTime</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
How fast do you jump up. This is the time, in seconds, in takes to reach <a class="normal" href="CastleCameras.TWalkCamera.html#MaxJumpDistance">MaxJumpDistance</a> height when jumping.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="HeadBobbing"></a><code>property <b>HeadBobbing</b>: Single
      read FHeadBobbing write FHeadBobbing default <a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbing">DefaultHeadBobbing</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
When you move horizontally, you get &quot;head bobbing&quot; effect &mdash; camera position slightly changes it's vertical position, going a little up, then a little down, then a little up again etc.

<p>This property mutiplied by <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a> says how much head bobbing can move you along <a class="normal" href="CastleCameras.TWalkCamera.html#GravityUp">GravityUp</a>. Set this to 0 to disable head bobbing. This must always be &lt; 1.0. For sensible effects, this should be rather close to 0.0.

<p>Of course this is meaningfull only when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> works.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="HeadBobbingTime"></a><code>property <b>HeadBobbingTime</b>: Single
      read FHeadBobbingTime write FHeadBobbingTime
      default <a  href="CastleCameras.TWalkCamera.html#DefaultHeadBobbingTime">DefaultHeadBobbingTime</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Controls head bobbing frequency. In the time of <code>HeadBobbingTime</code> seconds, we do full head bobbing sequence (camera swing up, then down again).

<p>Note that if you do a footsteps sound in your game (see <a class="normal" href="CastleSoundEngine.html#stPlayerFootstepsDefault">stPlayerFootstepsDefault</a> or <a class="normal" href="CastleMaterialProperties.TMaterialProperty.html#FootstepsSound">TMaterialProperty.FootstepsSound</a>) then you will want this property to match your footsteps sound length, things feel and sound natural then. Also, often it sounds better to record two footsteps inside a single sound file, in which case the footstep sound length should be twice as long as this property. For example, record 2 steps inside a 1-second long footstep sound, and set this property to 0.5 a second (which is a default in fact).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="CrouchHeight"></a><code>property <b>CrouchHeight</b>: Single
      read FCrouchHeight write FCrouchHeight default <a  href="CastleCameras.TWalkCamera.html#DefaultCrouchHeight">DefaultCrouchHeight</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
This defines the preferred height of camera when crouching. This is always mutiplied to <a class="normal" href="CastleCameras.TWalkCamera.html#PreferredHeight">PreferredHeight</a>. This should always be &lt;= 1 (<code>CrouchHeight</code> = 1 effectively disables crouching, although it's better to do this by calling MakeClear on <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Crouch">Input_Crouch</a>).</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="IsCrouching"></a><code>property <b>IsCrouching</b>: boolean read FIsCrouching;</code></td>
</tr>
<tr><td colspan="2">
<p>
Is player crouching right now.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="FallingOnTheGround"></a><code>property <b>FallingOnTheGround</b>: boolean read FFallingOnTheGround;</code></td>
</tr>
<tr><td colspan="2">
<p>
<code>True</code> when the effect caused by <a class="normal" href="CastleCameras.TWalkCamera.html#FallOnTheGround">FallOnTheGround</a> is stil in <a class="normal" href="CastleCameras.TWalkCamera.html#Motion">motion</a>.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="IsOnTheGround"></a><code>property <b>IsOnTheGround</b>: boolean read FIsOnTheGround;</code></td>
</tr>
<tr><td colspan="2">
<p>
This is <code>True</code> when gravity works (that is <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>), and player is standing stable on the ground. This is set in every Update.

<p>You can use this e.g. to make some effects when player is on some special ground (standing or walking), e.g. hurt player when he's standing on some toxical ground.

<p></p>
<h6 class="description_section">See also</h6>
<dl class="see_also">
  <dt><a class="normal" href="CastleCameras.TWalkCamera.html#IsWalkingOnTheGround">IsWalkingOnTheGround</a></dt>
  <dd>This is <code>True</code> when gravity works (that is <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>), and player is standing stable on the ground, and player is moving horizontally.</dd>
</dl>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="IsWalkingOnTheGround"></a><code>property <b>IsWalkingOnTheGround</b>: boolean read FIsWalkingOnTheGround;</code></td>
</tr>
<tr><td colspan="2">
<p>
This is <code>True</code> when gravity works (that is <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>), and player is standing stable on the ground, and player is moving horizontally. In other words, this is like &quot;<a class="normal" href="CastleCameras.TWalkCamera.html#IsOnTheGround">IsOnTheGround</a> and (s)he's walking&quot;. This is set in every Update.

<p>The intention is that you can use this to make some &quot;footsteps&quot; sound for the player.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="IsAbove"></a><code>property <b>IsAbove</b>: boolean read FIsAbove;</code></td>
</tr>
<tr><td colspan="2">
<p>
Last known information about whether camera is over the ground. Updated by using <a class="normal" href="CastleCameras.TWalkCamera.html#Height">Height</a> call. For normal <a class="normal" href="CastleCameras.TCamera.html">TCamera</a> descendants, this means using <a class="normal" href="CastleCameras.TWalkCamera.html#OnHeight">OnHeight</a> callback.

<p>These are updated only when <a class="normal" href="CastleCameras.TWalkCamera.html#Height">Height</a> is continously called, which in practice means: only when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> is <code>True</code>.

<p>We do not (and, currently, cannot) track here if <a class="normal" href="CastleCameras.TWalkCamera.html#AboveGround">AboveGround</a> pointer will be eventually released (which may happen if you release your 3D scene, or rebuild scene causing octree rebuild). This is not a problem for camera class, since we do not use this pointer for anything. But if you use this pointer, then you may want to take care to eventually set it to <code>Nil</code> when your octree or such is released.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AboveHeight"></a><code>property <b>AboveHeight</b>: Single read FAboveHeight;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="AboveGround"></a><code>property <b>AboveGround</b>: <a  href="CastleTriangles.html#P3DTriangle">P3DTriangle</a> read FAboveGround write FAboveGround;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_Forward"></a><code>property <b>Input_Forward</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Forward;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_Backward"></a><code>property <b>Input_Backward</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Backward;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_LeftRot"></a><code>property <b>Input_LeftRot</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_LeftRot;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_RightRot"></a><code>property <b>Input_RightRot</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_RightRot;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_LeftStrafe"></a><code>property <b>Input_LeftStrafe</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_LeftStrafe;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_RightStrafe"></a><code>property <b>Input_RightStrafe</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_RightStrafe;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_UpRotate"></a><code>property <b>Input_UpRotate</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_UpRotate;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_DownRotate"></a><code>property <b>Input_DownRotate</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_DownRotate;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_IncreasePreferredHeight"></a><code>property <b>Input_IncreasePreferredHeight</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_IncreasePreferredHeight;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_DecreasePreferredHeight"></a><code>property <b>Input_DecreasePreferredHeight</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_DecreasePreferredHeight;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_GravityUp"></a><code>property <b>Input_GravityUp</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_GravityUp;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_Run"></a><code>property <b>Input_Run</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Run;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_MoveSpeedInc"></a><code>property <b>Input_MoveSpeedInc</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_MoveSpeedInc;</code></td>
</tr>
<tr><td colspan="2">
<p>
Change the <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a>. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_MoveSpeedDec"></a><code>property <b>Input_MoveSpeedDec</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_MoveSpeedDec;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_Jump"></a><code>property <b>Input_Jump</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Jump;</code></td>
</tr>
<tr><td colspan="2">
<p>
Jumping and crouching (when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> = <code>True</code>) or flying up / down (when <a class="normal" href="CastleCameras.TWalkCamera.html#Gravity">Gravity</a> = <code>False</code>). </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="Input_Crouch"></a><code>property <b>Input_Crouch</b>: <a  href="CastleInputs.TInputShortcut.html">TInputShortcut</a> read FInput_Crouch;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MoveForward"></a><code>property <b>MoveForward</b>: boolean read FMoveForward write FMoveForward;</code></td>
</tr>
<tr><td colspan="2">
<p>
Move forward, just like <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Forward">Input_Forward</a> would be pressed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="public.gif" alt="Public" title="Public"></a></td>
<td class="itemcode"><a name="MoveBackward"></a><code>property <b>MoveBackward</b>: boolean read FMoveBackward write FMoveBackward;</code></td>
</tr>
<tr><td colspan="2">
<p>
Move backward, just like <a class="normal" href="CastleCameras.TWalkCamera.html#Input_Backward">Input_Backward</a> would be pressed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="AllowSlowerRotations"></a><code>property <b>AllowSlowerRotations</b>: boolean
      read FAllowSlowerRotations write FAllowSlowerRotations
      default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
If <code>True</code> then all rotation keys (<a class="normal" href="CastleCameras.TWalkCamera.html#Input_RightRot">Input_RightRot</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Input_LeftRot">Input_LeftRot</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Input_UpRotate">Input_UpRotate</a>, <a class="normal" href="CastleCameras.TWalkCamera.html#Input_DownRotate">Input_DownRotate</a>) will work 10x slower when Ctrl modified is pressed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="CheckModsDown"></a><code>property <b>CheckModsDown</b>: boolean
      read FCheckModsDown write FCheckModsDown
      default true;</code></td>
</tr>
<tr><td colspan="2">
<p>
Do we check what key modifiers are pressed and do something differently based on it?</p>
<p>


<p>If <code>True</code> then all keys work only when no modifiers or only shift are pressed. Additionally when Ctrl is pressed (and <a class="normal" href="CastleCameras.TWalkCamera.html#AllowSlowerRotations">AllowSlowerRotations</a>) then rotation keys work 10x slower. Also Increase/DecreasePreferredHeight work only when Ctrl pressed. Other keys with other modifiers don't work. We allow shift, because to press character &quot;+&quot; on non-numpad keyboard (useful on laptops, where numpad is difficult) you probably need to press shift.

<p>If <code>False</code> then all keys work as usual, no matter what modifiers are pressed. And rotation keys never work 10x slower (<a class="normal" href="CastleCameras.TWalkCamera.html#AllowSlowerRotations">AllowSlowerRotations</a> is ignored), also Increase/DecreasePreferredHeight are ignored.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="MoveHorizontalSpeed"></a><code>property <b>MoveHorizontalSpeed</b>: Single
      read FMoveHorizontalSpeed write FMoveHorizontalSpeed default 1.0;</code></td>
</tr>
<tr><td colspan="2">
<p>
Moving speeds. <code>MoveHorizontalSpeed</code> is only for horizontal movement, <a class="normal" href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a> is only for vertical, and <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a> simply affects both types of movement. Effectively, we always scale the speed of movement by either <code><code>MoveHorizontalSpeed</code> * <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a></code> or <code><a class="normal" href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a> * <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a></code>.

<p>We move by distance <code><a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a> * <code>MoveHorizontalSpeed</code> (or <a class="normal" href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a>)</code> during one second. Assuming &quot;normal circumstances&quot;, namely that SecondsPassed provided to <a class="normal" href="CastleCameras.TWalkCamera.html#Update">Update</a> method is expressed in seconds (which is the case, when you use camera as TCastleSceneManager.Camera). So if you leave <code>MoveHorizontalSpeed</code> = <a class="normal" href="CastleCameras.TWalkCamera.html#MoveVerticalSpeed">MoveVerticalSpeed</a> = 1 (as default), <a class="normal" href="CastleCameras.TWalkCamera.html#MoveSpeed">MoveSpeed</a> expresses the speed in nice units / per second.

<p>Default values for all these speed properties is 1.0, so you simply move by 1 unit per second.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="MoveVerticalSpeed"></a><code>property <b>MoveVerticalSpeed</b>: Single
      read FMoveVerticalSpeed write FMoveVerticalSpeed default 1.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="MoveSpeed"></a><code>property <b>MoveSpeed</b>: Single read FMoveSpeed write FMoveSpeed default 1.0;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="RotationHorizontalSpeed"></a><code>property <b>RotationHorizontalSpeed</b>: Single
      read FRotationHorizontalSpeed write FRotationHorizontalSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultRotationHorizontalSpeed">DefaultRotationHorizontalSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Rotation keys speed, in degrees per second. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="RotationVerticalSpeed"></a><code>property <b>RotationVerticalSpeed</b>: Single
      read FRotationVerticalSpeed write FRotationVerticalSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultRotationVerticalSpeed">DefaultRotationVerticalSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="MouseDraggingHorizontalRotationSpeed"></a><code>property <b>MouseDraggingHorizontalRotationSpeed</b>: Single
      read FMouseDraggingHorizontalRotationSpeed write FMouseDraggingHorizontalRotationSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingHorizontalRotationSpeed">DefaultMouseDraggingHorizontalRotationSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
<p>
Speed (degrees per pixel delta) of rotations by mouse dragging. Relevant only if ciMouseDragging in <a class="normal" href="CastleCameras.TCamera.html#Input">Input</a>, and <a class="normal" href="CastleCameras.TWalkCamera.html#MouseDragMode">MouseDragMode</a> is mdRotate. Separate for horizontal and vertical, this way you can e.g. limit (or disable) vertical rotations, useful for games where you mostly look horizontally and accidentally looking up/down is more confusing than useful. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="MouseDraggingVerticalRotationSpeed"></a><code>property <b>MouseDraggingVerticalRotationSpeed</b>: Single
      read FMouseDraggingVerticalRotationSpeed write FMouseDraggingVerticalRotationSpeed
      default <a  href="CastleCameras.TWalkCamera.html#DefaultMouseDraggingVerticalRotationSpeed">DefaultMouseDraggingVerticalRotationSpeed</a>;</code></td>
</tr>
<tr><td colspan="2">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="visibility"><a  href="legend.html"><img  src="published.gif" alt="Published" title="Published"></a></td>
<td class="itemcode"><a name="RotationHorizontalPivot"></a><code>property <b>RotationHorizontalPivot</b>: Single
      read FRotationHorizontalPivot write FRotationHorizontalPivot default 0;</code></td>
</tr>
<tr><td colspan="2">
<p>
Horizontal rotation can rotate around a vector that is <code>RotationHorizontalPivot</code> units forward before the camera. This is a poor-mans way to implement some 3rd camera game. Note that when non-zero this may (for now) move the camera without actually checking <a class="normal" href="CastleCameras.TWalkCamera.html#OnMoveAllowed">OnMoveAllowed</a>.</p>
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Code -->

<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&amp;rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:09</em>
</span>
</td></tr></table></body></html>