mirror of
https://github.com/linghuam/boutique-books.git
synced 2024-11-22 01:24:57 +00:00
add: threejs.md
This commit is contained in:
parent
d930ecaa0a
commit
da70fb8abd
48
b00-阅读笔记/threejs源码/threejs.md
Normal file
48
b00-阅读笔记/threejs源码/threejs.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# threejs 源码阅读
|
||||||
|
|
||||||
|
## Math
|
||||||
|
|
||||||
|
生成全局唯一id
|
||||||
|
|
||||||
|
```js
|
||||||
|
var generateUUID = (function() {
|
||||||
|
// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
|
||||||
|
|
||||||
|
var lut = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < 256; i++) {
|
||||||
|
lut[i] = (i < 16 ? "0" : "") + i.toString(16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return function generateUUID() {
|
||||||
|
var d0 = (Math.random() * 0xffffffff) | 0;
|
||||||
|
var d1 = (Math.random() * 0xffffffff) | 0;
|
||||||
|
var d2 = (Math.random() * 0xffffffff) | 0;
|
||||||
|
var d3 = (Math.random() * 0xffffffff) | 0;
|
||||||
|
var uuid =
|
||||||
|
lut[d0 & 0xff] +
|
||||||
|
lut[(d0 >> 8) & 0xff] +
|
||||||
|
lut[(d0 >> 16) & 0xff] +
|
||||||
|
lut[(d0 >> 24) & 0xff] +
|
||||||
|
"-" +
|
||||||
|
lut[d1 & 0xff] +
|
||||||
|
lut[(d1 >> 8) & 0xff] +
|
||||||
|
"-" +
|
||||||
|
lut[((d1 >> 16) & 0x0f) | 0x40] +
|
||||||
|
lut[(d1 >> 24) & 0xff] +
|
||||||
|
"-" +
|
||||||
|
lut[(d2 & 0x3f) | 0x80] +
|
||||||
|
lut[(d2 >> 8) & 0xff] +
|
||||||
|
"-" +
|
||||||
|
lut[(d2 >> 16) & 0xff] +
|
||||||
|
lut[(d2 >> 24) & 0xff] +
|
||||||
|
lut[d3 & 0xff] +
|
||||||
|
lut[(d3 >> 8) & 0xff] +
|
||||||
|
lut[(d3 >> 16) & 0xff] +
|
||||||
|
lut[(d3 >> 24) & 0xff];
|
||||||
|
|
||||||
|
// .toUpperCase() here flattens concatenated strings to save heap memory space.
|
||||||
|
return uuid.toUpperCase();
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user