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