Files
CADViewComponent/src/ColorPalette.ts

299 lines
12 KiB
TypeScript
Raw Normal View History

import * as THREE from 'three';
2018-08-17 17:39:11 +08:00
import { LineBasicMaterial, MeshBasicMaterial, Color } 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>();
2018-08-17 17:39:11 +08:00
static GetLineMaterial(index): LineBasicMaterial
{
if (this.m_LineMaterialMap.has(index))
return this.m_LineMaterialMap.get(index);
2018-08-17 17:39:11 +08:00
let mat = new LineBasicMaterial({ color: this.GetColor(index) });
this.m_LineMaterialMap.set(index, mat);
return mat;
}
2018-08-17 17:39:11 +08:00
private static m_BasicMaterialMap = new Map<number, MeshBasicMaterial>();
static GetBasicMaterial(index: number): MeshBasicMaterial
{
if (this.m_BasicMaterialMap.has(index))
return this.m_BasicMaterialMap.get(index);
let mat = new MeshBasicMaterial({ color: this.GetColor(index) });
this.m_BasicMaterialMap.set(index, mat);
return mat;
}
static GetColor(index: number)
{
let rgb = ColorPalette[index];
if (rgb)
2018-08-17 17:39:11 +08:00
return new Color(rgb[0] / 255, rgb[1] / 255, rgb[2] / 255);
}
}