@@ -18,10 +18,11 @@ function VoxelArea:new(o)
18
18
end
19
19
20
20
function VoxelArea :getExtent ()
21
+ local MaxEdge , MinEdge = self .MaxEdge , self .MinEdge
21
22
return {
22
- x = self . MaxEdge .x - self . MinEdge .x + 1 ,
23
- y = self . MaxEdge .y - self . MinEdge .y + 1 ,
24
- z = self . MaxEdge .z - self . MinEdge .z + 1 ,
23
+ x = MaxEdge .x - MinEdge .x + 1 ,
24
+ y = MaxEdge .y - MinEdge .y + 1 ,
25
+ z = MaxEdge .z - MinEdge .z + 1 ,
25
26
}
26
27
end
27
28
@@ -31,45 +32,50 @@ function VoxelArea:getVolume()
31
32
end
32
33
33
34
function VoxelArea :index (x , y , z )
34
- local i = (z - self .MinEdge .z ) * self .zstride +
35
- (y - self .MinEdge .y ) * self .ystride +
36
- (x - self .MinEdge .x ) + 1
35
+ local MinEdge = self .MinEdge
36
+ local i = (z - MinEdge .z ) * self .zstride +
37
+ (y - MinEdge .y ) * self .ystride +
38
+ (x - MinEdge .x ) + 1
37
39
return math.floor (i )
38
40
end
39
41
40
42
function VoxelArea :indexp (p )
41
- local i = (p .z - self .MinEdge .z ) * self .zstride +
42
- (p .y - self .MinEdge .y ) * self .ystride +
43
- (p .x - self .MinEdge .x ) + 1
43
+ local MinEdge = self .MinEdge
44
+ local i = (p .z - MinEdge .z ) * self .zstride +
45
+ (p .y - MinEdge .y ) * self .ystride +
46
+ (p .x - MinEdge .x ) + 1
44
47
return math.floor (i )
45
48
end
46
49
47
50
function VoxelArea :position (i )
48
51
local p = {}
52
+ local MinEdge = self .MinEdge
49
53
50
54
i = i - 1
51
55
52
- p .z = math.floor (i / self .zstride ) + self . MinEdge .z
56
+ p .z = math.floor (i / self .zstride ) + MinEdge .z
53
57
i = i % self .zstride
54
58
55
- p .y = math.floor (i / self .ystride ) + self . MinEdge .y
59
+ p .y = math.floor (i / self .ystride ) + MinEdge .y
56
60
i = i % self .ystride
57
61
58
- p .x = math.floor (i ) + self . MinEdge .x
62
+ p .x = math.floor (i ) + MinEdge .x
59
63
60
64
return p
61
65
end
62
66
63
67
function VoxelArea :contains (x , y , z )
64
- return (x >= self .MinEdge .x ) and (x <= self .MaxEdge .x ) and
65
- (y >= self .MinEdge .y ) and (y <= self .MaxEdge .y ) and
66
- (z >= self .MinEdge .z ) and (z <= self .MaxEdge .z )
68
+ local MaxEdge , MinEdge = self .MaxEdge , self .MinEdge
69
+ return (x >= MinEdge .x ) and (x <= MaxEdge .x ) and
70
+ (y >= MinEdge .y ) and (y <= MaxEdge .y ) and
71
+ (z >= MinEdge .z ) and (z <= MaxEdge .z )
67
72
end
68
73
69
74
function VoxelArea :containsp (p )
70
- return (p .x >= self .MinEdge .x ) and (p .x <= self .MaxEdge .x ) and
71
- (p .y >= self .MinEdge .y ) and (p .y <= self .MaxEdge .y ) and
72
- (p .z >= self .MinEdge .z ) and (p .z <= self .MaxEdge .z )
75
+ local MaxEdge , MinEdge = self .MaxEdge , self .MinEdge
76
+ return (p .x >= MinEdge .x ) and (p .x <= MaxEdge .x ) and
77
+ (p .y >= MinEdge .y ) and (p .y <= MaxEdge .y ) and
78
+ (p .z >= MinEdge .z ) and (p .z <= MaxEdge .z )
73
79
end
74
80
75
81
function VoxelArea :containsi (i )
0 commit comments