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