broken_seals/game/voxelman/mc_mesher/MarchingCobesVoxelMesher.gd

1372 lines
60 KiB
GDScript

extends VoxelMesherTransvoxel
class_name MarchingCubesVoxelMesher
# Copyright Péter Magyar relintai@gmail.com
# MIT License, might be merged into the Voxelman engine module
# Copyright (c) 2019 Péter Magyar
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
var count : int = 0
var equivalence_classes_data : Array = [
0, 1, 1, 2, 1, 2, 3, 4, #7
1, 3, 2, 4, 2, 4, 4, 5, #15
1, 2, 3, 4, 3, 4, 6, 7, #23
3, 8, 8, 9, 8, 10, 11, 12, #31
1, 3, 2, 4, 3, 8, 8, 10, #39
3, 6, 4, 7, 8, 11, 9, 12, #47
2, 4, 4, 5, 8, 9, 11, 12, #55
8, 11, 10, 12, 13, 14, 14, #62
2, 1, 3, 3, 8, 2, 4, 8, #70
9, 3, 6, 8, 11, 4, 7, 10, #78
12, 2, 4, 8, 10, 4, 5, #85
11, 12, 8, 11, 13, 14, #91
9, 12, 14, 2, #95
0, 0, 0, 0, 0, 0, 0, 0, 0, #104
15, #105
0, #106
16, #107
0, 0, 0, #110
17, #111
0, 0, 0, 0, 0, 0, 0, 0, 0, #120
0, 0, 0, 0, 0, #125
3, #126
1, #127
]
var vertices_data : Array = [
[],
#1
[ Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5) ],
#2
[ Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#3
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#4
[ Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#5
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#6
[ Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#7
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0.5, 0, 0) ],
#8
[ Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#9
[ Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#10
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#11
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5) ],
#12
[ Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#13
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#14
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#15
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#16
[ Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0) ],
#17
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#18
[ Vector3(0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0) ],
#19
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#20
[ Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0.5, 0, 0), Vector3(0, 0, -0.5) ],
#21
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#22
[ Vector3(0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#23
[ Vector3(0.5, 0, 0), Vector3(0, 0, 0.5),
Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0) ],
#24
[ Vector3(0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#25
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#26
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0) ],
#27
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0) ],
#28
[ Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0) ],
#29
[ Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0) ],
#30
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0) ],
#31
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0.5, 0, 0) ],
#32
[ Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5) ],
#33
[ Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0) ],
#34
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0) ],
#35
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#36
[ Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0.5, 0), Vector3(0.5, 0, 0), Vector3(0, 0, -0.5) ],
#37
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5) ],
#38
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#39
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#40
[ Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#41
[ Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5) ],
#42
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0) ],
#43
[ Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0) ],
#44
[Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5) ],
#45
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5) ],
#46
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0) ],
#47
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5) ],
#48
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0) ],
#49
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0, -0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#50
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#51
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#52
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#53
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, -0.5, 0), Vector3(0.5, 0, 0) ],
#54
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#55
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0) ],
#56
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#57
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0, -0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#58
[ Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0),
Vector3(0, -0.5, 0), Vector3(-0.5, 0, 0) ],
#59
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#60
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0) ],
#61
[ Vector3(0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, -0.5) ],
#62
[ Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, -0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#63
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5), Vector3(0, 0, 0.5) ],
#64
[ Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#65
[ Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#66
[ Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#67
[ Vector3(0, 0, 0.5), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#68
[ Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#69
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#70
[ Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#71
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#72
[ Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#73
[ Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#74
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#75
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
#76
[ Vector3(0, 0, -0.5), Vector3(0, 0, -0.5), Vector3(0, 0, -0.5),
Vector3(0, 0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0, -0.5) ],
#77
[ Vector3(0, 0, -0.5), Vector3(0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#78
[ Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0.5, 0) ],
#79
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0.5, 0, 0), Vector3(0, 0, -0.5) ],
#80
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0) ],
#81
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#82
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#83
[ Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0.5, 0, 0), Vector3(0, 0, 0.5),
Vector3(0, -0.5, 0), Vector3(0, 0, 0.5) ],
#84
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, -0.5, 0), Vector3(0, 0, -0.5),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#85
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#86
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, -0.5, 0), Vector3(0, 0, -0.5),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#87
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(0, 0, 0.5) ],
#88
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#89
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0, 0.5),
Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#90
[ Vector3(-0.5, 0, 0), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, -0.5, 0), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
#91
[ Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0),
Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0) ],
#92
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, -0.5),
Vector3(0, -0.5, 0), Vector3(0, 0, -0.5) ],
#93
[ Vector3(0.5, 0, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
#94
[ Vector3(0, 0, -0.5), Vector3(0, -0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0.5, 0, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0) ],
#95
[ Vector3(0, 0.5, 0), Vector3(0, 0.5, 0), Vector3(0.5, 0, 0), Vector3(0.5, 0, 0) ],
[], [], [], [], [], [], [], [], [], #104
#105
[ Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(-0.5, 0, 0), Vector3(0, -0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
[], #106
#107
[ Vector3(0, 0, 0.5), Vector3(-0.5, 0, 0),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0),
Vector3(0, 0, 0.5), Vector3(0, 0.5, 0),
Vector3(0, 0, -0.5), Vector3(0.5, 0, 0), Vector3(0, -0.5, 0) ],
[], [], [], #110
#111
[ Vector3(0, 0.5, 0), Vector3(0.5, 0, 0), Vector3(0, 0, -0.5),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0), Vector3(0, 0, 0.5),
Vector3(0, 0.5, 0), Vector3(-0.5, 0, 0), Vector3(0, 0.5, 0),
Vector3(0, 0.5, 0), Vector3(0, 0, -0.5), Vector3(0, 0.5, 0) ],
[], [], [], [], [], [], [], [], [], #120
[], [], [], [], [], #125
#126
[ Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5),
Vector3(0, 0, -0.5), Vector3(0, -0.5, 0), Vector3(-0.5, 0, 0) ],
#127
[ Vector3(0.5, 0, 0), Vector3(0, 0.5, 0), Vector3(0, 0, 0.5) ],
]
var vertex_corner_data : Array = [
[],
#1
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000 ],
#2
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#3
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100 ],
#4
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#5
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000 ],
#6
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#7
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001 ],
#8
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#9
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#10
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101 ],
#11
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000 ],
#12
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001 ],
#13
[ VOXEL_ENTRY_INDEX_001 , VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000 ],
#14
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001 ],
#15
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101 ],
#16
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010 ],
#17
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000 ],
#18
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#19
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010 ],
#20
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#21
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001 ],
#22
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#23
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#24
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#25
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#26
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010 ],
#27
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100 ],
#28
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010 ],
#29
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001 ],
#30
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010 ],
#31
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010 ],
#32
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#33
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#34
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110 ],
#35
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000 ],
#36
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#37
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#38
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#39
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000 ],
#40
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#41
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000 ],
#42
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110 ],
#43
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000 ],
#44
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#45
[ VOXEL_ENTRY_INDEX_001 , VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#46
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_101 ],
#47
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110 ],
#48
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010 ],
#49
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110 ],
#50
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100 ],
#51
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100 ],
#52
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#53
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000 ],
#54
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#55
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#56
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#57
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#58
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100 ],
#59
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#60
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001 ],
#61
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#62
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_001 ],
#63
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_110 ],
#64
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#65
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#66
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#67
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#68
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011 ],
#69
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011 ],
#70
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#71
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000 ],
#72
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#73
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#74
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#75
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#76
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_101 ],
#77
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#78
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_101 ],
#79
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
#80
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011 ],
#81
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000 ],
#82
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#83
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000 ],
#84
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010 ],
#85
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_000 ],
#86
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#87
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_001,
VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#88
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#89
[ VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#90
[ VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010 ],
#91
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#92
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_001 ],
#93
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101 ],
#94
[ VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_100 ],
#95
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_100, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_010 ],
[], [], [], [], [], [], [], [], [], #104
#105
[ VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
[], #106
#107
[ VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_101,
VOXEL_ENTRY_INDEX_000, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011 ],
[], [], [], #110
#111
[ VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_011,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110, VOXEL_ENTRY_INDEX_000,
VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_000 ],
[], [], [], [], [], [], [], [], [], #120
[], [], [], [], [], #125
#126
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110,
VOXEL_ENTRY_INDEX_001, VOXEL_ENTRY_INDEX_010, VOXEL_ENTRY_INDEX_100 ],
#127
[ VOXEL_ENTRY_INDEX_011, VOXEL_ENTRY_INDEX_101, VOXEL_ENTRY_INDEX_110 ],
]
var indices_data : Array = [
[],
[ 0, 2, 1 ], #1
[ 0, 2, 1, 1, 2, 3 ], #2
[ 0, 2, 1, 3, 5, 4 ], #3
[ 0, 2, 1, 5, 3, 4, 6, 3, 5 ], #4
[ 0, 1, 2, 2, 1, 3 ], #5
[ 0, 2, 1, 3, 5, 4, 6, 8, 7 ], #6
[ 0, 2, 1, 1, 2, 3, 1, 3, 4, 1, 4, 5 ], #7
[ 0, 2, 1, 1, 2, 3, 4, 6, 5 ], #8
[ 0, 1, 2, 2, 1, 3, 1, 4, 3, 3, 4, 5 ], #9
[ 0, 1, 2, 2, 1, 3, 4, 2, 3, 4, 3, 5 ], #10
[ 0, 2, 1, 5, 3, 4, 6, 3, 5, 7, 9, 8 ], #00
[ 0, 3, 1, 1, 3, 4, 1, 4, 2 ], #12
[ 0, 2, 1, 1, 2, 3, 4, 6, 5, 5, 6, 7 ], #13
[ 0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13 ], #14
[ 0, 2, 1, 3, 5, 4, 6, 8, 7, 9, 11, 10 ], #15
[ 0, 2, 1, 1, 2, 3, 1, 3, 4, 1, 4, 5, 6, 8, 7 ], #16
[ 0, 1, 2, 3, 4, 5, 6, 8, 7, 9, 10, 11 ], #17
]
var uv_data : Array = [
[],
#1
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#2
[ Vector2(0, 0), Vector2(-0.5, 0), Vector2(0, 0.5), Vector2(-0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#3
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#4
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#5
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ], #top
#6
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#7
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ], #left
#8
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#9
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#10
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#11
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#12
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#13
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ], #left
#14
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ], #left
#15
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#16
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#17
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#18
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#19
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#20
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#21
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#22
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#23
[ Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0), ],
#24
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#25
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#26
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#27
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#28
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#29
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#30
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#31
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#32
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#33
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#34
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
]
var vector_start_position_data : Array = [
Vector3(0, 0, 0),
Vector3(1, 0, 0),
Vector3(0, 0, 1),
Vector3(1, 0, 1),
Vector3(0, 1, 0),
Vector3(1, 1, 0),
Vector3(0, 1, 1),
Vector3(1, 1, 1),
]
var uv_scale_direction_data_old : Array = [
[],
#1
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#2
[ Vector2(0, 0), Vector2(-0.5, 0), Vector2(0, 0.5), Vector2(-0.5, 0.5) ],
#3
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ],
#4
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#5
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0) ], #top
#6
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0) ],
#7
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#8
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5) ],
#9
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#10
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0) ],
#11
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0) ],
#12
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ],
#13
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#14
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#15
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ],
#16
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5) ],
#17
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ],
#18
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#19
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#20
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#21
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#22
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#23
[ Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0) ],
#24
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#25
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#26
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#27
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#28
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#29
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#30
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#31
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#32
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#33
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#34
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
]
var uv_scale_direction_data : Array = [
[],
#1
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#2
[ Vector2(0, 0), Vector2(-0.5, 0), Vector2(0, 0.5), Vector2(-0.5, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#3
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#4
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#5
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ], #top
#6
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#7
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ], #left
#8
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#9
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#10
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#11
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#12
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#13
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ], #left
#14
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ], #left
#15
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#16
[ Vector2(0, 0), Vector2(0.5, 0), Vector2(0, 0.5), Vector2(0.5, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#17
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#18
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),],
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
#19
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ], #left
#20
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), ],
#21
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0), Vector2(0.5, 0), #back
Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5), ], #left
#22
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#23
[ Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0),
Vector2(0, 0), Vector2(0, 0) ],
#24
[ Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#25
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#26
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#27
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#28
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#29
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#30
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#31
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#32
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#33
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5) ,
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
#34
[ Vector2(0, 0), Vector2(0, 0), Vector2(0, 0.5), Vector2(0, 0.5),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0),
Vector2(0, 0), Vector2(0, 0), Vector2(0.5, 0) ],
]
#
#var uv_entries_data : Array = [
# [ 0, 0 ], #0
# [ 1, 0 ], #1
# [ 0, 1 ], #2
# [ 1, 1 ], #3
#]
func get_case_code(buffer : VoxelChunk, x : int, y : int, z : int, size : int = 1) -> int:
var case_code : int = 0
if (buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_000
if (buffer.get_voxel(x, y + size, z, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_010
if (buffer.get_voxel(x, y, z + size, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_001
if (buffer.get_voxel(x, y + size, z + size, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_011
if (buffer.get_voxel(x + size, y, z, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_100
if (buffer.get_voxel(x + size, y + size, z, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_110
if (buffer.get_voxel(x + size, y, z + size, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_101
if (buffer.get_voxel(x + size, y + size, z + size, VoxelChunk.DEFAULT_CHANNELTYPE) != 0):
case_code = case_code | VOXEL_ENTRY_MASK_111
return case_code
func _add_chunk(buffer : VoxelChunk) -> void:
var x_size : int = buffer.get_size_x() - 1
var y_size : int = buffer.get_size_y() - 1
var z_size : int = buffer.get_size_z() - 1
var uv_rect : float = 1 / 8.0
for y in range(0, y_size, lod_size):
for z in range(0, z_size, lod_size):
for x in range(0, x_size, lod_size):
var case_code : int = get_case_code(buffer, x, y, z, lod_size)
if case_code == 0 or case_code == 255:
continue
#todo remove, after the tables are done.
if case_code >= vertices_data.size():
continue
var equivalence_class : int = equivalence_classes_data[case_code]
var vertices : Array = vertices_data[case_code]
var indices : Array = indices_data[equivalence_class]
var uvs : Array = uv_data[equivalence_class]
var vertex_corner_owners : Array = vertex_corner_data[case_code]
var uv_scale_directions : Array = uv_scale_direction_data[equivalence_class]
var index_count : int = len(indices)
var vertex_count : int = len(vertices)
#var uv_count : int = len(uvs)
#var vertex_corner_owners_count : int = len(vertex_corner_owners)
var fill_values : Array = [
buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x + lod_size, y, z, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x + lod_size, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x + lod_size, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
buffer.get_voxel(x + lod_size, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELISOLEVEL),
]
var ao_strength_arr : Array = [
buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x + lod_size, y, z, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x + lod_size, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x + lod_size, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELAO),
buffer.get_voxel(x + lod_size, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELAO),
]
var colors : Array = [
Color(buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x + lod_size, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x + lod_size, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x + lod_size, y, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G),buffer.get_voxel(x, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x + lod_size, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x + lod_size, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x + lod_size, y, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x + lod_size, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x + lod_size, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x + lod_size, y + lod_size, z, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B)),
Color(buffer.get_voxel(x + lod_size, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_R), buffer.get_voxel(x + lod_size, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_G), buffer.get_voxel(x + lod_size, y + lod_size, z + lod_size, VoxelChunk.DEFAULT_CHANNELLIGHT_COLOR_B))
]
for i in range(index_count):
var ind : int = get_vertex_count() + indices[i]
add_indices(ind)
for i in range(vertex_count):
var owner_corner : int = vertex_corner_owners[i]
var start_position : Vector3 = vector_start_position_data[owner_corner]
var fill_byte : int = fill_values[owner_corner]
var fill : float = fill_byte / 255.0
# var color : Color = colors[owner_corner]
# var ao_val : float = ao_strength_arr[owner_corner] * ao_strength
# var ao : Color = Color(ao_val, ao_val, ao_val)
#
# color = color - ao
#
# color.r = clamp(color.r, 0, 1.0)
# color.g = clamp(color.g, 0, 1.0)
# color.b = clamp(color.b, 0, 1.0)
var color : Color = Color(1, 1, 1)
add_color(color)
var uv_scale_direction : Vector2 = uv_scale_directions[i] as Vector2
var uv : Vector2 = uvs[i] as Vector2
#uv *= fill
uv += uv_scale_direction * fill
uv *= uv_rect
add_uv(uv)
var vert_pos : Vector3 = vertices[i] as Vector3
vert_pos *= fill
vert_pos += start_position
vert_pos += Vector3(x, y, z)
vert_pos *= float(voxel_scale)
add_vertex(vert_pos)
func create_Debug_triangle(position : Vector3):
add_indices(get_indices_count())
add_vertex(position)
add_indices(get_indices_count())
add_vertex(position + Vector3(2, 0, 0))
add_indices(get_indices_count())
add_vertex(position + Vector3(0, 0, 2))
print(get_vertex_count())