mirror of https://gitee.com/cf-fz/WebCAD.git
parent
02358e7286
commit
c988019a1d
@ -0,0 +1,288 @@
|
|||||||
|
import * as THREE from 'three';
|
||||||
|
export let 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, 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
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
var colorMatBuff = new Map<number, THREE.Material>();
|
||||||
|
export function GetColorIndex(index: number)
|
||||||
|
{
|
||||||
|
if (colorMatBuff.has(index))
|
||||||
|
{
|
||||||
|
return colorMatBuff.get(index);
|
||||||
|
}
|
||||||
|
let colorRgb = ColorPalette[index];
|
||||||
|
let colorx = new THREE.Color(colorRgb[0], colorRgb[1], colorRgb[2]);
|
||||||
|
console.log(colorx.getHex());
|
||||||
|
let mat = new THREE.MeshStandardMaterial(
|
||||||
|
{
|
||||||
|
color: colorx,
|
||||||
|
side: THREE.DoubleSide,
|
||||||
|
metalness: 0.5,
|
||||||
|
emissive: colorx,
|
||||||
|
roughness: 0.5
|
||||||
|
}
|
||||||
|
);
|
||||||
|
colorMatBuff.set(index, mat);
|
||||||
|
return mat;
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
//最小限度的使用这个模块. 所以提供了一个导出的头文件.
|
||||||
|
import * as THREE from "three";
|
||||||
|
|
||||||
|
export var FBXLoader = require('three-FBXLoader');
|
||||||
|
window["threeZlib"] = require("zlib")
|
||||||
|
|
||||||
|
export interface LoaderState
|
||||||
|
{
|
||||||
|
State: boolean,
|
||||||
|
object?: THREE.Group
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//加载事件
|
||||||
|
let onProgress = function (xhr)
|
||||||
|
{
|
||||||
|
if (xhr.lengthComputable)
|
||||||
|
{
|
||||||
|
let percentComplete = xhr.loaded / xhr.total * 100;
|
||||||
|
console.log(Math.round(percentComplete) + '% downloaded');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//错误事件
|
||||||
|
let onError = function (xhr)
|
||||||
|
{
|
||||||
|
console.error(xhr);
|
||||||
|
};
|
||||||
|
|
||||||
|
//Loader FBX
|
||||||
|
export function loadFBX(fileName: string): Promise<LoaderState>
|
||||||
|
{
|
||||||
|
let manager = new THREE.LoadingManager();
|
||||||
|
let loader = new THREE.FBXLoader(manager);
|
||||||
|
|
||||||
|
|
||||||
|
return new Promise<LoaderState>((resolve, reject) =>
|
||||||
|
{
|
||||||
|
loader.load(fileName,
|
||||||
|
(object) =>
|
||||||
|
{
|
||||||
|
resolve({
|
||||||
|
State: true,
|
||||||
|
object: object
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onProgress,
|
||||||
|
(xhr) =>
|
||||||
|
{
|
||||||
|
console.log('xhr: ', xhr);
|
||||||
|
resolve({
|
||||||
|
State: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
)
|
||||||
|
});
|
||||||
|
}
|
Loading…
Reference in new issue