Open Simulator Terrain Editor
BRIGADOON-0007
Edit Terrain Files for Open Simulator Regions
Loading...
Searching...
No Matches
areacalculator.cpp
Go to the documentation of this file.
1
#include "
areacalculator.h
"
2
3
void
AreaCalculator::AutoCalcChanged
(Qt::CheckState State)
4
{
5
auto_calc_size
= (bool)State;
6
if
(
auto_calc_size
)
7
{
8
FindWorldLimits
();
9
CalculateWorldArea
();
10
}
11
}
12
13
AreaCalculator::AreaCalculator
(QObject *parent)
14
: QObject{parent}
15
{
16
region_size
= 65536;
17
region_multiplier
= 1;
18
side_additive
= 0;
19
lower_x
= 0;
lower_y
= 0;
upper_x
= 0;
upper_y
= 0;
20
world_x_size
= 0;
world_y_size
= 0;
21
auto_calc_size
=
false
;
22
}
23
24
void
AreaCalculator::LowerXChanged
(
int
NewValue)
25
{
26
lower_x
= NewValue;
27
if
(
auto_calc_size
)
FindWorldLimits
();
28
}
29
30
void
AreaCalculator::LowerYChanged
(
int
NewValue)
31
{
32
lower_y
= NewValue;
33
if
(
auto_calc_size
)
FindWorldLimits
();
34
}
35
36
void
AreaCalculator::UpperXChanged
(
int
NewValue)
37
{
38
upper_x
= NewValue +
side_additive
;
39
if
(
auto_calc_size
)
FindWorldLimits
();
40
}
41
42
void
AreaCalculator::UpperYChanged
(
int
NewValue)
43
{
44
upper_y
= NewValue +
side_additive
;
45
if
(
auto_calc_size
)
FindWorldLimits
();
46
}
47
48
void
AreaCalculator::WorldXChanged
(
int
NewValue)
49
{
50
world_x_size
= NewValue;
51
CalculateWorldArea
();
52
}
53
54
void
AreaCalculator::WorldYChanged
(
int
NewValue)
55
{
56
world_y_size
= NewValue;
57
CalculateWorldArea
();
58
}
59
60
void
AreaCalculator::CalculateWorldArea
(
void
)
61
{
62
int
world_block =
world_x_size
*
world_y_size
;
63
int
region_count = world_block;
64
float
world_area = (float)world_block *
region_size
;
65
REMOTE_WORLD_SIZE
remote_world_size;
66
67
remote_world_size.
WorldArea
= world_area;
68
remote_world_size.
WorldRegionCount
= region_count;
69
70
emit
SendWorldArea
(remote_world_size);
71
}
72
73
void
AreaCalculator::Regionx1Pressed
(
void
)
74
{
75
region_size
= 65536;
76
region_multiplier
= 1;
77
side_additive
= 0;
78
CalculateWorldArea
();
79
}
80
81
void
AreaCalculator::Regionx4Pressed
(
void
)
82
{
83
region_size
= 262144;
84
region_multiplier
= 4;
85
side_additive
= 1;
86
CalculateWorldArea
();
87
}
88
89
void
AreaCalculator::Regionx16Pressed
(
void
)
90
{
91
region_size
= 1048576;
92
region_multiplier
= 16;
93
side_additive
= 3;
94
CalculateWorldArea
();
95
}
96
97
void
AreaCalculator::FindWorldLimits
(
void
)
98
{
99
REMOTE_WORLD_SIDES
world_sides;
100
101
// Check that None of the Limits are currently 0
102
if
((
lower_x
!= 0) && (
upper_x
!= 0) && (
lower_y
!= 0) && (
upper_y
!= 0))
103
{
104
world_sides.
WorldXSize
=
upper_x
-
lower_x
+
side_additive
+ 1;
105
world_sides.
WorldYSize
=
upper_y
-
lower_y
+
side_additive
+ 1;
106
}
107
else
108
{
109
world_sides.
WorldXSize
= 0;
110
world_sides.
WorldYSize
= 0;
111
}
112
113
emit
SendWorldSides
(world_sides);
114
}
115
116
void
AreaCalculator::LogAdd
(
LOGGING_SEVERITY
Severity,
LOGGING_MODE
Mode, QString Message)
117
{
118
REMOTE_LOG_ENTRY
log_entry;
119
log_entry.
Severity
= Severity;
120
log_entry.
Mode
= Mode;
121
log_entry.
Message
= Message;
122
emit
SendLogEntry
(log_entry);
123
}
124
125
void
AreaCalculator::IncludeNewRegion
(
REMOTE_REGION_ADDRESS
Location)
126
{
127
auto_calc_size
=
true
;
128
129
if
((
lower_x
== 0) || Location.
RegionXLocation
<
lower_x
)
LowerXChanged
(Location.
RegionXLocation
);
130
if
(Location.
RegionXLocation
>
upper_x
)
UpperXChanged
(Location.
RegionXLocation
);
131
if
((Location.
RegionXLocation
+
side_additive
) >
upper_x
)
UpperXChanged
(Location.
RegionXLocation
);
132
133
if
((
lower_y
== 0) || Location.
RegionYLocation
<
lower_y
)
LowerYChanged
(Location.
RegionYLocation
);
134
if
(Location.
RegionYLocation
>
upper_y
)
UpperYChanged
(Location.
RegionYLocation
);
135
if
((Location.
RegionYLocation
+
side_additive
) >
upper_y
)
UpperXChanged
(Location.
RegionYLocation
);
136
}
137
areacalculator.h
AreaCalculator::AreaCalculator
AreaCalculator(QObject *parent=nullptr)
Definition
areacalculator.cpp:13
AreaCalculator::SendWorldArea
void SendWorldArea(REMOTE_WORLD_SIZE WorldArea)
AreaCalculator::WorldXChanged
void WorldXChanged(int NewValue)
Definition
areacalculator.cpp:48
AreaCalculator::SendWorldSides
void SendWorldSides(REMOTE_WORLD_SIDES world_sides)
AreaCalculator::upper_x
int upper_x
Definition
areacalculator.h:47
AreaCalculator::UpperXChanged
void UpperXChanged(int NewValue)
Definition
areacalculator.cpp:36
AreaCalculator::CalculateWorldArea
void CalculateWorldArea(void)
Definition
areacalculator.cpp:60
AreaCalculator::side_additive
int side_additive
Definition
areacalculator.h:54
AreaCalculator::world_y_size
int world_y_size
Definition
areacalculator.h:51
AreaCalculator::LowerYChanged
void LowerYChanged(int NewValue)
Definition
areacalculator.cpp:30
AreaCalculator::region_size
int region_size
Definition
areacalculator.h:52
AreaCalculator::IncludeNewRegion
void IncludeNewRegion(REMOTE_REGION_ADDRESS Location)
Definition
areacalculator.cpp:125
AreaCalculator::SendLogEntry
void SendLogEntry(REMOTE_LOG_ENTRY LogEntry)
Send Log Entry via the Signal-Slot Method.
AreaCalculator::Regionx16Pressed
void Regionx16Pressed(void)
Definition
areacalculator.cpp:89
AreaCalculator::upper_y
int upper_y
Definition
areacalculator.h:48
AreaCalculator::UpperYChanged
void UpperYChanged(int NewValue)
Definition
areacalculator.cpp:42
AreaCalculator::FindWorldLimits
void FindWorldLimits(void)
Definition
areacalculator.cpp:97
AreaCalculator::lower_y
int lower_y
Definition
areacalculator.h:46
AreaCalculator::auto_calc_size
bool auto_calc_size
Definition
areacalculator.h:55
AreaCalculator::world_x_size
int world_x_size
Definition
areacalculator.h:50
AreaCalculator::WorldYChanged
void WorldYChanged(int NewValue)
Definition
areacalculator.cpp:54
AreaCalculator::lower_x
int lower_x
Definition
areacalculator.h:45
AreaCalculator::Regionx1Pressed
void Regionx1Pressed(void)
Definition
areacalculator.cpp:73
AreaCalculator::LogAdd
void LogAdd(LOGGING_SEVERITY Severity, LOGGING_MODE Mode, QString Message)
Definition
areacalculator.cpp:116
AreaCalculator::region_multiplier
int region_multiplier
Definition
areacalculator.h:53
AreaCalculator::AutoCalcChanged
void AutoCalcChanged(Qt::CheckState)
Definition
areacalculator.cpp:3
AreaCalculator::LowerXChanged
void LowerXChanged(int NewValue)
Definition
areacalculator.cpp:24
AreaCalculator::Regionx4Pressed
void Regionx4Pressed(void)
Definition
areacalculator.cpp:81
LOGGING_SEVERITY
LOGGING_SEVERITY
Log Severity allow the selection of logging events based on Severity.
Definition
logger.h:48
LOGGING_MODE
LOGGING_MODE
Log Severity allow the selection of logging events based on the mode.
Definition
logger.h:21
REMOTE_LOG_ENTRY
Definition
logger.h:60
REMOTE_LOG_ENTRY::Mode
LOGGING_MODE Mode
Definition
logger.h:61
REMOTE_LOG_ENTRY::Message
QString Message
Definition
logger.h:63
REMOTE_LOG_ENTRY::Severity
LOGGING_SEVERITY Severity
Definition
logger.h:62
REMOTE_REGION_ADDRESS
Definition
areacalculator.h:20
REMOTE_REGION_ADDRESS::RegionYLocation
int RegionYLocation
Definition
areacalculator.h:22
REMOTE_REGION_ADDRESS::RegionXLocation
int RegionXLocation
Definition
areacalculator.h:21
REMOTE_WORLD_SIDES
Definition
areacalculator.h:14
REMOTE_WORLD_SIDES::WorldYSize
int WorldYSize
Definition
areacalculator.h:16
REMOTE_WORLD_SIDES::WorldXSize
int WorldXSize
Definition
areacalculator.h:15
REMOTE_WORLD_SIZE
Definition
areacalculator.h:8
REMOTE_WORLD_SIZE::WorldRegionCount
int WorldRegionCount
Definition
areacalculator.h:10
REMOTE_WORLD_SIZE::WorldArea
float WorldArea
Definition
areacalculator.h:9
areacalculator.cpp
Generated by
1.14.0