288 lines
11 KiB
TypeScript
288 lines
11 KiB
TypeScript
import * as THREE from 'three';
|
|
const ColorPalette = [
|
|
[255, 0, 0, 255], //----- 0 - lets make it red for an example
|
|
//[255, 255, 255, 255],//----- 0 - ByBlock - White
|
|
[255, 0, 0, 255], //----- 1 - Red
|
|
// [255, 0, 0, 255], //----- 1 - Red
|
|
[255, 255, 0, 255], //----- 2 - Yellow
|
|
[0, 255, 0, 255], //----- 3 - Green
|
|
[0, 255, 255, 255], //----- 4 - Cyan
|
|
[0, 0, 255, 255], //----- 5 - Blue
|
|
[255, 0, 255, 255], //----- 6 - Magenta
|
|
// [255, 0, 0, 255], //----- 7 - More red Red
|
|
// [255, 0, 0, 255], //----- 8 - More red Red
|
|
// [255, 0, 0, 255], //----- 9 - More red Red
|
|
[255, 255, 255, 255],//----- 7 - White
|
|
[255, 255, 255, 255],//----- 8
|
|
[255, 255, 255, 255],//----- 9
|
|
[255, 0, 0, 255], //----- 10
|
|
[255, 127, 127, 255],//----- 11
|
|
[165, 0, 0, 255], //----- 12
|
|
[165, 82, 82, 255], //----- 13
|
|
[127, 0, 0, 255], //----- 14
|
|
[127, 63, 63, 255], //----- 15
|
|
[76, 0, 0, 255], //----- 16
|
|
[76, 38, 38, 255], //----- 17
|
|
[38, 0, 0, 255], //----- 18
|
|
[38, 19, 19, 255], //----- 19
|
|
[255, 63, 0, 255], //----- 20
|
|
[255, 159, 127, 255],//----- 21
|
|
[165, 41, 0, 255], //----- 22
|
|
[165, 103, 82, 255], //----- 23
|
|
[127, 31, 0, 255], //----- 24
|
|
[127, 79, 63, 255], //----- 25
|
|
[76, 19, 0, 255], //----- 26
|
|
[76, 47, 38, 255], //----- 27
|
|
[38, 9, 0, 255], //----- 28
|
|
[38, 23, 19, 255], //----- 29
|
|
[255, 127, 0, 255], //----- 30
|
|
[255, 191, 127, 255],//----- 31
|
|
[165, 82, 0, 255], //----- 32
|
|
[165, 124, 82, 255], //----- 33
|
|
[127, 63, 0, 255], //----- 34
|
|
[127, 95, 63, 255], //----- 35
|
|
[76, 38, 0, 255], //----- 36
|
|
[76, 57, 38, 255], //----- 37
|
|
[38, 19, 0, 255], //----- 38
|
|
[38, 28, 19, 255], //----- 39
|
|
[255, 191, 0, 255], //----- 40
|
|
[255, 223, 127, 255],//----- 41
|
|
[165, 124, 0, 255], //----- 42
|
|
[165, 145, 82, 255], //----- 43
|
|
[127, 95, 0, 255], //----- 44
|
|
[127, 111, 63, 255], //----- 45
|
|
[76, 57, 0, 255], //----- 46
|
|
[76, 66, 38, 255], //----- 47
|
|
[38, 28, 0, 255], //----- 48
|
|
[38, 33, 19, 255], //----- 49
|
|
[255, 255, 0, 255], //----- 50
|
|
[255, 255, 127, 255],//----- 51
|
|
[165, 165, 0, 255], //----- 52
|
|
[165, 165, 82, 255], //----- 53
|
|
[127, 127, 0, 255], //----- 54
|
|
[127, 127, 63, 255], //----- 55
|
|
[76, 76, 0, 255], //----- 56
|
|
[76, 76, 38, 255], //----- 57
|
|
[38, 38, 0, 255], //----- 58
|
|
[38, 38, 19, 255], //----- 59
|
|
[191, 255, 0, 255], //----- 60
|
|
[223, 255, 127, 255],//----- 61
|
|
[124, 165, 0, 255], //----- 62
|
|
[145, 165, 82, 255], //----- 63
|
|
[95, 127, 0, 255], //----- 64
|
|
[111, 127, 63, 255], //----- 65
|
|
[57, 76, 0, 255], //----- 66
|
|
[66, 76, 38, 255], //----- 67
|
|
[28, 38, 0, 255], //----- 68
|
|
[33, 38, 19, 255], //----- 69
|
|
[127, 255, 0, 255], //----- 70
|
|
[191, 255, 127, 255],//----- 71
|
|
[82, 165, 0, 255], //----- 72
|
|
[124, 165, 82, 255], //----- 73
|
|
[63, 127, 0, 255], //----- 74
|
|
[95, 127, 63, 255], //----- 75
|
|
[38, 76, 0, 255], //----- 76
|
|
[57, 76, 38, 255], //----- 77
|
|
[19, 38, 0, 255], //----- 78
|
|
[28, 38, 19, 255], //----- 79
|
|
[63, 255, 0, 255], //----- 80
|
|
[159, 255, 127, 255],//----- 81
|
|
[41, 165, 0, 255], //----- 82
|
|
[103, 165, 82, 255], //----- 83
|
|
[31, 127, 0, 255], //----- 84
|
|
[79, 127, 63, 255], //----- 85
|
|
[19, 76, 0, 255], //----- 86
|
|
[47, 76, 38, 255], //----- 87
|
|
[9, 38, 0, 255], //----- 88
|
|
[23, 38, 19, 255], //----- 89
|
|
[0, 255, 0, 255], //----- 90
|
|
[127, 255, 127, 255],//----- 91
|
|
[0, 165, 0, 255], //----- 92
|
|
[82, 165, 82, 255], //----- 93
|
|
[0, 127, 0, 255], //----- 94
|
|
[63, 127, 63, 255], //----- 95
|
|
[0, 76, 0, 255], //----- 96
|
|
[38, 76, 38, 255], //----- 97
|
|
[0, 38, 0, 255], //----- 98
|
|
[19, 38, 19, 255], //----- 99
|
|
[0, 255, 63, 255], //----- 100
|
|
[127, 255, 159, 255],//----- 101
|
|
[0, 165, 41, 255], //----- 102
|
|
[82, 165, 103, 255], //----- 103
|
|
[0, 127, 31, 255], //----- 104
|
|
[63, 127, 79, 255], //----- 105
|
|
[0, 76, 19, 255], //----- 106
|
|
[38, 76, 47, 255], //----- 107
|
|
[0, 38, 9, 255], //----- 108
|
|
[19, 38, 23, 255], //----- 109
|
|
[0, 255, 127, 255], //----- 110
|
|
[127, 255, 191, 255],//----- 111
|
|
[0, 165, 82, 255], //----- 112
|
|
[82, 165, 124, 255], //----- 113
|
|
[0, 127, 63, 255], //----- 114
|
|
[63, 127, 95, 255], //----- 115
|
|
[0, 76, 38, 255], //----- 116
|
|
[38, 76, 57, 255], //----- 117
|
|
[0, 38, 19, 255], //----- 118
|
|
[19, 38, 28, 255], //----- 119
|
|
[0, 255, 191, 255], //----- 120
|
|
[127, 255, 223, 255],//----- 121
|
|
[0, 165, 124, 255], //----- 122
|
|
[82, 165, 145, 255], //----- 123
|
|
[0, 127, 95, 255], //----- 124
|
|
[63, 127, 111, 255], //----- 125
|
|
[0, 76, 57, 255], //----- 126
|
|
[38, 76, 66, 255], //----- 127
|
|
[0, 38, 28, 255], //----- 128
|
|
[19, 38, 33, 255], //----- 129
|
|
[0, 255, 255, 255], //----- 130
|
|
[127, 255, 255, 255],//----- 131
|
|
[0, 165, 165, 255], //----- 132
|
|
[82, 165, 165, 255], //----- 133
|
|
[0, 127, 127, 255], //----- 134
|
|
[63, 127, 127, 255], //----- 135
|
|
[0, 76, 76, 255], //----- 136
|
|
[38, 76, 76, 255], //----- 137
|
|
[0, 38, 38, 255], //----- 138
|
|
[19, 38, 38, 255], //----- 139
|
|
[0, 191, 255, 255], //----- 140
|
|
[127, 223, 255, 255],//----- 141
|
|
[0, 124, 165, 255], //----- 142
|
|
[82, 145, 165, 255], //----- 143
|
|
[0, 95, 127, 255], //----- 144
|
|
[63, 111, 127, 255], //----- 145
|
|
[0, 57, 76, 255], //----- 146
|
|
[38, 66, 76, 255], //----- 147
|
|
[0, 28, 38, 255], //----- 148
|
|
[19, 33, 38, 255], //----- 149
|
|
[0, 127, 255, 255], //----- 150
|
|
[127, 191, 255, 255],//----- 151
|
|
[0, 82, 165, 255], //----- 152
|
|
[82, 124, 165, 255], //----- 153
|
|
[0, 63, 127, 255], //----- 154
|
|
[63, 95, 127, 255], //----- 155
|
|
[0, 38, 76, 255], //----- 156
|
|
[38, 57, 76, 255], //----- 157
|
|
[0, 19, 38, 255], //----- 158
|
|
[19, 28, 38, 255], //----- 159
|
|
[0, 63, 255, 255], //----- 160
|
|
[127, 159, 255, 255],//----- 161
|
|
[0, 41, 165, 255], //----- 162
|
|
[82, 103, 165, 255], //----- 163
|
|
[0, 31, 127, 255], //----- 164
|
|
[63, 79, 127, 255], //----- 165
|
|
[0, 19, 76, 255], //----- 166
|
|
[38, 47, 76, 255], //----- 167
|
|
[0, 9, 38, 255], //----- 168
|
|
[19, 23, 38, 255], //----- 169
|
|
[0, 0, 255, 255], //----- 170
|
|
[127, 127, 255, 255],//----- 171
|
|
[0, 0, 165, 255], //----- 172
|
|
[82, 82, 165, 255], //----- 173
|
|
[0, 0, 127, 255], //----- 174
|
|
[63, 63, 127, 255], //----- 175
|
|
[0, 0, 76, 255], //----- 176
|
|
[38, 38, 76, 255], //----- 177
|
|
[0, 0, 38, 255], //----- 178
|
|
[19, 19, 38, 255], //----- 179
|
|
[63, 0, 255, 255], //----- 180
|
|
[159, 127, 255, 255],//----- 181
|
|
[41, 0, 165, 255], //----- 182
|
|
[103, 82, 165, 255], //----- 183
|
|
[31, 0, 127, 255], //----- 184
|
|
[79, 63, 127, 255], //----- 185
|
|
[19, 0, 76, 255], //----- 186
|
|
[47, 38, 76, 255], //----- 187
|
|
[9, 0, 38, 255], //----- 188
|
|
[23, 19, 38, 255], //----- 189
|
|
[127, 0, 255, 255], //----- 190
|
|
[191, 127, 255, 255],//----- 191
|
|
[82, 0, 165, 255], //----- 192
|
|
[124, 82, 165, 255], //----- 193
|
|
[63, 0, 127, 255], //----- 194
|
|
[95, 63, 127, 255], //----- 195
|
|
[38, 0, 76, 255], //----- 196
|
|
[57, 38, 76, 255], //----- 197
|
|
[19, 0, 38, 255], //----- 198
|
|
[28, 19, 38, 255], //----- 199
|
|
[191, 0, 255, 255], //----- 200
|
|
[223, 127, 255, 255],//----- 201
|
|
[124, 0, 165, 255], //----- 202
|
|
[145, 82, 165, 255], //----- 203
|
|
[95, 0, 127, 255], //----- 204
|
|
[111, 63, 127, 255], //----- 205
|
|
[57, 0, 76, 255], //----- 206
|
|
[66, 38, 76, 255], //----- 207
|
|
[28, 0, 38, 255], //----- 208
|
|
[33, 19, 38, 255], //----- 209
|
|
[255, 0, 255, 255], //----- 210
|
|
[255, 127, 255, 255],//----- 211
|
|
[165, 0, 165, 255], //----- 212
|
|
[165, 82, 165, 255], //----- 213
|
|
[127, 0, 127, 255], //----- 214
|
|
[127, 63, 127, 255], //----- 215
|
|
[76, 0, 76, 255], //----- 216
|
|
[76, 38, 76, 255], //----- 217
|
|
[38, 0, 38, 255], //----- 218
|
|
[38, 19, 38, 255], //----- 219
|
|
[255, 0, 191, 255], //----- 220
|
|
[255, 127, 223, 255],//----- 221
|
|
[165, 0, 124, 255], //----- 222
|
|
[165, 82, 145, 255], //----- 223
|
|
[127, 0, 95, 255], //----- 224
|
|
[127, 63, 111, 255], //----- 225
|
|
[76, 0, 57, 255], //----- 226
|
|
[76, 38, 66, 255], //----- 227
|
|
[38, 0, 28, 255], //----- 228
|
|
[38, 19, 33, 255], //----- 229
|
|
[255, 0, 127, 255], //----- 230
|
|
[255, 127, 191, 255],//----- 231
|
|
[165, 0, 82, 255], //----- 232
|
|
[165, 82, 124, 255], //----- 233
|
|
[127, 0, 63, 255], //----- 234
|
|
[127, 63, 95, 255], //----- 235
|
|
[76, 0, 38, 255], //----- 236
|
|
[76, 38, 57, 255], //----- 237
|
|
[38, 0, 19, 255], //----- 238
|
|
[38, 19, 28, 255], //----- 239
|
|
[255, 0, 63, 255], //----- 240
|
|
[255, 127, 159, 255],//----- 241
|
|
[165, 0, 41, 255], //----- 242
|
|
[165, 82, 103, 255], //----- 243
|
|
[127, 0, 31, 255], //----- 244
|
|
[127, 63, 79, 255], //----- 245
|
|
[76, 0, 19, 255], //----- 246
|
|
[76, 38, 47, 255], //----- 247
|
|
[38, 0, 9, 255], //----- 248
|
|
[38, 19, 23, 255], //----- 249
|
|
[84, 84, 84, 255], //----- 250
|
|
[118, 118, 118, 255],//----- 251
|
|
[152, 152, 152, 255],//----- 252
|
|
[186, 186, 186, 255],//----- 253
|
|
[220, 220, 220, 255],//----- 254
|
|
[255, 255, 255, 255],//----- 255
|
|
[255, 255, 255, 255] //----- ByLayer - White
|
|
];
|
|
|
|
|
|
//颜色材质,对于二维图像来说可能有用,应该不对三维对象使用该材质
|
|
export class ColorMaterial
|
|
{
|
|
private constructor() { }
|
|
private static m_LineMaterialMap = new Map<number, THREE.LineBasicMaterial>();
|
|
static GetLineMaterial(index): THREE.LineBasicMaterial
|
|
{
|
|
if (this.m_LineMaterialMap.has(index))
|
|
return this.m_LineMaterialMap.get(index);
|
|
let mat = new THREE.LineBasicMaterial({ color: this.GetColor(index) });
|
|
this.m_LineMaterialMap.set(index, mat);
|
|
return mat;
|
|
}
|
|
|
|
static GetColor(index: number)
|
|
{
|
|
let rgb = ColorPalette[index];
|
|
if (rgb)
|
|
return new THREE.Color(rgb[0] / 255, rgb[1] / 255, rgb[2] / 255);
|
|
}
|
|
} |