@anov/3d 0.0.177 → 0.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/anov3d.js +0 -2
- package/dist/anov3d.js.map +1 -1
- package/dist/applicationApi.js +38 -39
- package/dist/applicationApi.js.map +1 -1
- package/dist/module/camera/index.js +20 -17
- package/dist/module/camera/index.js.map +1 -1
- package/dist/module/entity/area/index.js +29 -0
- package/dist/module/entity/area/index.js.map +1 -0
- package/dist/module/{model/index.js → entity/area/style/area_01.js} +40 -79
- package/dist/module/entity/area/style/area_01.js.map +1 -0
- package/dist/module/entity/area/style/index.js +27 -0
- package/dist/module/entity/area/style/index.js.map +1 -0
- package/dist/module/entity/area/type.js.map +1 -0
- package/dist/module/entity/bar/index.js +29 -0
- package/dist/module/entity/bar/index.js.map +1 -0
- package/dist/{factory/unit/poi.js → module/entity/bar/style/bar_01.js} +36 -249
- package/dist/module/entity/bar/style/bar_01.js.map +1 -0
- package/dist/module/entity/bar/style/index.js +27 -0
- package/dist/module/entity/bar/style/index.js.map +1 -0
- package/dist/module/entity/bar/type.js +2 -0
- package/dist/module/entity/bar/type.js.map +1 -0
- package/dist/module/entity/index.js +5 -12
- package/dist/module/entity/index.js.map +1 -1
- package/dist/module/entity/model/index.js +9 -6
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/entity/model/load/loadFbx.js.map +1 -1
- package/dist/module/entity/model/load/loadGlb.js +7 -4
- package/dist/module/entity/model/load/loadGlb.js.map +1 -1
- package/dist/module/entity/poi/style/base.js.map +1 -1
- package/dist/module/entity/poi/type.js.map +1 -1
- package/dist/{factory/unit/districtLine.js → module/entity/realismTraffic/index.js} +91 -109
- package/dist/module/entity/realismTraffic/index.js.map +1 -0
- package/dist/module/entity/spline/style/index.js.map +1 -1
- package/dist/module/entity/spline/style/line_01.js +2 -2
- package/dist/module/entity/spline/style/line_01.js.map +1 -1
- package/dist/module/entity/spline/style/line_texture_01.js +6 -6
- package/dist/module/entity/spline/style/line_texture_01.js.map +1 -1
- package/dist/module/entity/spline/type.js.map +1 -1
- package/dist/module/entity/strategy.js +22 -0
- package/dist/module/entity/strategy.js.map +1 -1
- package/dist/module/entity/utils.js +17 -0
- package/dist/module/entity/utils.js.map +1 -1
- package/dist/module/environment/index.js +35 -113
- package/dist/module/environment/index.js.map +1 -1
- package/dist/module/scene/fileParse.js +232 -132
- package/dist/module/scene/fileParse.js.map +1 -1
- package/dist/module/scene/index.js +84 -137
- package/dist/module/scene/index.js.map +1 -1
- package/dist/{factory/globalControl.js → module/tool/index.js} +8 -16
- package/dist/module/tool/index.js.map +1 -0
- package/dist/sdkEntry.js +4 -9
- package/dist/sdkEntry.js.map +1 -1
- package/package.json +3 -3
- package/dist/factory/3d.js +0 -535
- package/dist/factory/3d.js.map +0 -1
- package/dist/factory/globalControl.js.map +0 -1
- package/dist/factory/globalData.js +0 -2
- package/dist/factory/globalData.js.map +0 -1
- package/dist/factory/regionData.js +0 -499
- package/dist/factory/regionData.js.map +0 -1
- package/dist/factory/type.js.map +0 -1
- package/dist/factory/unit/CameraPoi.js +0 -1047
- package/dist/factory/unit/CameraPoi.js.map +0 -1
- package/dist/factory/unit/areaBoundingBox.js +0 -28
- package/dist/factory/unit/areaBoundingBox.js.map +0 -1
- package/dist/factory/unit/circle.js +0 -225
- package/dist/factory/unit/circle.js.map +0 -1
- package/dist/factory/unit/cylinder.js +0 -269
- package/dist/factory/unit/cylinder.js.map +0 -1
- package/dist/factory/unit/districtLine.js.map +0 -1
- package/dist/factory/unit/glsl/heat/frag.glsl +0 -37
- package/dist/factory/unit/glsl/heat/frag.js +0 -4
- package/dist/factory/unit/glsl/heat/frag.js.map +0 -1
- package/dist/factory/unit/glsl/heat/ver.glsl +0 -15
- package/dist/factory/unit/glsl/heat/ver.js +0 -4
- package/dist/factory/unit/glsl/heat/ver.js.map +0 -1
- package/dist/factory/unit/glsl/highway/fragmentShader.js +0 -4
- package/dist/factory/unit/glsl/highway/fragmentShader.js.map +0 -1
- package/dist/factory/unit/glsl/highway/fragmentShader2.js +0 -4
- package/dist/factory/unit/glsl/highway/fragmentShader2.js.map +0 -1
- package/dist/factory/unit/glsl/highway/vertexShader.js +0 -4
- package/dist/factory/unit/glsl/highway/vertexShader.js.map +0 -1
- package/dist/factory/unit/glsl/point/fragment.glsl +0 -12
- package/dist/factory/unit/glsl/point/vertex.glsl +0 -7
- package/dist/factory/unit/glsl/wall/fragmentShader.glsl +0 -30
- package/dist/factory/unit/glsl/wall/vertexShader.glsl +0 -6
- package/dist/factory/unit/handle.js +0 -132
- package/dist/factory/unit/handle.js.map +0 -1
- package/dist/factory/unit/index.js +0 -264
- package/dist/factory/unit/index.js.map +0 -1
- package/dist/factory/unit/inspection/InspectionObject.js +0 -608
- package/dist/factory/unit/inspection/InspectionObject.js.map +0 -1
- package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js +0 -382
- package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js.map +0 -1
- package/dist/factory/unit/inspection/index.js +0 -379
- package/dist/factory/unit/inspection/index.js.map +0 -1
- package/dist/factory/unit/inspection/lineData.js +0 -44
- package/dist/factory/unit/inspection/lineData.js.map +0 -1
- package/dist/factory/unit/inspection/map.js +0 -67
- package/dist/factory/unit/inspection/map.js.map +0 -1
- package/dist/factory/unit/inspection/tubeGeometry.js +0 -152
- package/dist/factory/unit/inspection/tubeGeometry.js.map +0 -1
- package/dist/factory/unit/layer/rise.js +0 -142
- package/dist/factory/unit/layer/rise.js.map +0 -1
- package/dist/factory/unit/line.js +0 -96
- package/dist/factory/unit/line.js.map +0 -1
- package/dist/factory/unit/poi.js.map +0 -1
- package/dist/factory/unit/region.js +0 -72
- package/dist/factory/unit/region.js.map +0 -1
- package/dist/factory/unit/slice.js +0 -122
- package/dist/factory/unit/slice.js.map +0 -1
- package/dist/factory/unit/wall.js +0 -119
- package/dist/factory/unit/wall.js.map +0 -1
- package/dist/factory/utils/areaBoundingBox.js +0 -54
- package/dist/factory/utils/areaBoundingBox.js.map +0 -1
- package/dist/factory/utils/constant.js +0 -15
- package/dist/factory/utils/constant.js.map +0 -1
- package/dist/factory/utils/finirMaterial.js +0 -56
- package/dist/factory/utils/finirMaterial.js.map +0 -1
- package/dist/factory/utils/fontMesh.js +0 -49
- package/dist/factory/utils/fontMesh.js.map +0 -1
- package/dist/factory/utils/ground.js +0 -65
- package/dist/factory/utils/ground.js.map +0 -1
- package/dist/factory/utils/index.js +0 -24
- package/dist/factory/utils/index.js.map +0 -1
- package/dist/factory/utils/observe.js +0 -23
- package/dist/factory/utils/observe.js.map +0 -1
- package/dist/factory/utils/switchMaterial.js +0 -110
- package/dist/factory/utils/switchMaterial.js.map +0 -1
- package/dist/module/environment/time/index.js +0 -28
- package/dist/module/environment/time/index.js.map +0 -1
- package/dist/module/environment/weather/type.js +0 -28
- package/dist/module/environment/weather/type.js.map +0 -1
- package/dist/module/model/index.js.map +0 -1
- /package/dist/{factory → module/entity/area}/type.js +0 -0
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
3
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
4
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
-
import { BufferGeometry, Float32BufferAttribute, QuadraticBezierCurve3, Vector2, Vector3 } from '@anov/3d-core';
|
|
16
|
-
var TubeGeometry = /*#__PURE__*/function (_BufferGeometry) {
|
|
17
|
-
_inherits(TubeGeometry, _BufferGeometry);
|
|
18
|
-
var _super = _createSuper(TubeGeometry);
|
|
19
|
-
function TubeGeometry() {
|
|
20
|
-
var _this;
|
|
21
|
-
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0));
|
|
22
|
-
var tubularSegments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 64;
|
|
23
|
-
var radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
24
|
-
var radialSegments = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 8;
|
|
25
|
-
var closed = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
26
|
-
_classCallCheck(this, TubeGeometry);
|
|
27
|
-
_this = _super.call(this);
|
|
28
|
-
_defineProperty(_assertThisInitialized(_this), "type", void 0);
|
|
29
|
-
_defineProperty(_assertThisInitialized(_this), "parameters", void 0);
|
|
30
|
-
_defineProperty(_assertThisInitialized(_this), "tangents", void 0);
|
|
31
|
-
_defineProperty(_assertThisInitialized(_this), "normals", void 0);
|
|
32
|
-
_defineProperty(_assertThisInitialized(_this), "binormals", void 0);
|
|
33
|
-
_this.type = 'TubeGeometry';
|
|
34
|
-
_this.parameters = {
|
|
35
|
-
path: path,
|
|
36
|
-
tubularSegments: tubularSegments,
|
|
37
|
-
radius: radius,
|
|
38
|
-
radialSegments: radialSegments,
|
|
39
|
-
closed: closed
|
|
40
|
-
};
|
|
41
|
-
var frames = path.computeFrenetFrames(tubularSegments, closed);
|
|
42
|
-
|
|
43
|
-
// expose internals
|
|
44
|
-
|
|
45
|
-
_this.tangents = frames.tangents;
|
|
46
|
-
_this.normals = frames.normals;
|
|
47
|
-
_this.binormals = frames.binormals;
|
|
48
|
-
|
|
49
|
-
// helper variables
|
|
50
|
-
|
|
51
|
-
var vertex = new Vector3();
|
|
52
|
-
var normal = new Vector3();
|
|
53
|
-
var uv = new Vector2();
|
|
54
|
-
var P = new Vector3();
|
|
55
|
-
|
|
56
|
-
// buffer
|
|
57
|
-
|
|
58
|
-
var vertices = [];
|
|
59
|
-
var normals = [];
|
|
60
|
-
var uvs = [];
|
|
61
|
-
var indices = [];
|
|
62
|
-
|
|
63
|
-
// create buffer data
|
|
64
|
-
|
|
65
|
-
generateBufferData();
|
|
66
|
-
|
|
67
|
-
// build geometry
|
|
68
|
-
|
|
69
|
-
_this.setIndex(indices);
|
|
70
|
-
_this.setAttribute('position', new Float32BufferAttribute(vertices, 3));
|
|
71
|
-
_this.setAttribute('normal', new Float32BufferAttribute(normals, 3));
|
|
72
|
-
_this.setAttribute('uv', new Float32BufferAttribute(uvs, 2));
|
|
73
|
-
|
|
74
|
-
// functions
|
|
75
|
-
|
|
76
|
-
function generateBufferData() {
|
|
77
|
-
for (var i = 0; i < tubularSegments; i++) generateSegment(i);
|
|
78
|
-
|
|
79
|
-
// if the geometry is not closed, generate the last row of vertices and normals
|
|
80
|
-
// at the regular position on the given path
|
|
81
|
-
//
|
|
82
|
-
// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)
|
|
83
|
-
|
|
84
|
-
generateSegment(closed === false ? tubularSegments : 0);
|
|
85
|
-
|
|
86
|
-
// uvs are generated in a separate function.
|
|
87
|
-
// this makes it easy compute correct values for closed geometries
|
|
88
|
-
|
|
89
|
-
generateUVs();
|
|
90
|
-
|
|
91
|
-
// finally create faces
|
|
92
|
-
|
|
93
|
-
generateIndices();
|
|
94
|
-
}
|
|
95
|
-
function generateSegment(i) {
|
|
96
|
-
P = path.getPointAt(i / tubularSegments, P);
|
|
97
|
-
var T = frames.tangents[i];
|
|
98
|
-
var referenceVector = new Vector3(0, 1, 0);
|
|
99
|
-
if (T.y > 0.999) referenceVector.set(1, 0, 0);
|
|
100
|
-
var N = new Vector3();
|
|
101
|
-
var B = new Vector3();
|
|
102
|
-
N.crossVectors(T, referenceVector).normalize();
|
|
103
|
-
B.crossVectors(T, N).normalize();
|
|
104
|
-
for (var j = 0; j <= radialSegments; j++) {
|
|
105
|
-
var v = j / radialSegments * Math.PI * 2;
|
|
106
|
-
var sin = Math.sin(v);
|
|
107
|
-
var cos = -Math.cos(v);
|
|
108
|
-
|
|
109
|
-
// 使用切线来生成法线
|
|
110
|
-
normal.x = cos * N.x + sin * B.x;
|
|
111
|
-
normal.y = cos * N.y + sin * B.y;
|
|
112
|
-
normal.z = cos * N.z + sin * B.z;
|
|
113
|
-
normal.normalize();
|
|
114
|
-
normals.push(normal.x, normal.y, normal.z);
|
|
115
|
-
|
|
116
|
-
// 使用切线生成顶点
|
|
117
|
-
vertex.x = P.x + radius * normal.x;
|
|
118
|
-
vertex.y = P.y + radius * normal.y;
|
|
119
|
-
vertex.z = P.z + radius * normal.z;
|
|
120
|
-
vertices.push(vertex.x, vertex.y, vertex.z);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
function generateIndices() {
|
|
124
|
-
for (var j = 1; j <= tubularSegments; j++) {
|
|
125
|
-
for (var i = 1; i <= radialSegments; i++) {
|
|
126
|
-
var a = (radialSegments + 1) * (j - 1) + (i - 1);
|
|
127
|
-
var b = (radialSegments + 1) * j + (i - 1);
|
|
128
|
-
var c = (radialSegments + 1) * j + i;
|
|
129
|
-
var d = (radialSegments + 1) * (j - 1) + i;
|
|
130
|
-
|
|
131
|
-
// faces
|
|
132
|
-
|
|
133
|
-
indices.push(a, b, d);
|
|
134
|
-
indices.push(b, c, d);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
function generateUVs() {
|
|
139
|
-
for (var i = 0; i <= tubularSegments; i++) {
|
|
140
|
-
for (var j = 0; j <= radialSegments; j++) {
|
|
141
|
-
uv.x = i / tubularSegments;
|
|
142
|
-
uv.y = j / radialSegments;
|
|
143
|
-
uvs.push(uv.x, uv.y);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return _this;
|
|
148
|
-
}
|
|
149
|
-
return _createClass(TubeGeometry);
|
|
150
|
-
}(BufferGeometry);
|
|
151
|
-
export default TubeGeometry;
|
|
152
|
-
//# sourceMappingURL=tubeGeometry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["BufferGeometry","Float32BufferAttribute","QuadraticBezierCurve3","Vector2","Vector3","TubeGeometry","_BufferGeometry","_inherits","_super","_createSuper","_this","path","arguments","length","undefined","tubularSegments","radius","radialSegments","closed","_classCallCheck","call","_defineProperty","_assertThisInitialized","type","parameters","frames","computeFrenetFrames","tangents","normals","binormals","vertex","normal","uv","P","vertices","uvs","indices","generateBufferData","setIndex","setAttribute","i","generateSegment","generateUVs","generateIndices","getPointAt","T","referenceVector","y","set","N","B","crossVectors","normalize","j","v","Math","PI","sin","cos","x","z","push","a","b","c","d","_createClass"],"sources":["../../../../src/factory/unit/inspection/tubeGeometry.ts"],"sourcesContent":["import { BufferGeometry, Color, Float32BufferAttribute, LineCurve3, Mesh, MeshBasicMaterial, QuadraticBezierCurve3, SceneControl as Scene, Vector2, Vector3 } from '@anov/3d-core'\n\nclass TubeGeometry extends BufferGeometry {\n type: string\n parameters: {\n path: QuadraticBezierCurve3\n tubularSegments: number\n radius: number\n radialSegments: number\n closed: boolean\n }\n\n tangents: Vector3[]\n normals: Vector3[]\n binormals: Vector3[]\n constructor(path = new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0)), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false) {\n super()\n\n this.type = 'TubeGeometry'\n\n this.parameters = {\n path,\n tubularSegments,\n radius,\n radialSegments,\n closed,\n }\n\n const frames = path.computeFrenetFrames(tubularSegments, closed)\n\n // expose internals\n\n this.tangents = frames.tangents\n this.normals = frames.normals\n this.binormals = frames.binormals\n\n // helper variables\n\n const vertex = new Vector3()\n const normal = new Vector3()\n const uv = new Vector2()\n let P = new Vector3()\n\n // buffer\n\n const vertices = []\n const normals = []\n const uvs = []\n const indices = []\n\n // create buffer data\n\n generateBufferData()\n\n // build geometry\n\n this.setIndex(indices)\n this.setAttribute('position', new Float32BufferAttribute(vertices, 3))\n this.setAttribute('normal', new Float32BufferAttribute(normals, 3))\n this.setAttribute('uv', new Float32BufferAttribute(uvs, 2))\n\n // functions\n\n function generateBufferData() {\n for (let i = 0; i < tubularSegments; i++)\n\n generateSegment(i)\n\n // if the geometry is not closed, generate the last row of vertices and normals\n // at the regular position on the given path\n //\n // if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n generateSegment((closed === false) ? tubularSegments : 0)\n\n // uvs are generated in a separate function.\n // this makes it easy compute correct values for closed geometries\n\n generateUVs()\n\n // finally create faces\n\n generateIndices()\n }\n\n function generateSegment(i) {\n P = path.getPointAt(i / tubularSegments, P)\n\n const T = frames.tangents[i]\n\n const referenceVector = new Vector3(0, 1, 0)\n if (T.y > 0.999)\n referenceVector.set(1, 0, 0)\n\n const N = new Vector3()\n const B = new Vector3()\n\n N.crossVectors(T, referenceVector).normalize()\n B.crossVectors(T, N).normalize()\n\n for (let j = 0; j <= radialSegments; j++) {\n const v = j / radialSegments * Math.PI * 2\n const sin = Math.sin(v)\n const cos = -Math.cos(v)\n\n // 使用切线来生成法线\n normal.x = cos * N.x + sin * B.x\n normal.y = cos * N.y + sin * B.y\n normal.z = cos * N.z + sin * B.z\n normal.normalize()\n\n normals.push(normal.x, normal.y, normal.z)\n\n // 使用切线生成顶点\n vertex.x = P.x + radius * normal.x\n vertex.y = P.y + radius * normal.y\n vertex.z = P.z + radius * normal.z\n\n vertices.push(vertex.x, vertex.y, vertex.z)\n }\n }\n\n function generateIndices() {\n for (let j = 1; j <= tubularSegments; j++) {\n for (let i = 1; i <= radialSegments; i++) {\n const a = (radialSegments + 1) * (j - 1) + (i - 1)\n const b = (radialSegments + 1) * j + (i - 1)\n const c = (radialSegments + 1) * j + i\n const d = (radialSegments + 1) * (j - 1) + i\n\n // faces\n\n indices.push(a, b, d)\n indices.push(b, c, d)\n }\n }\n }\n\n function generateUVs() {\n for (let i = 0; i <= tubularSegments; i++) {\n for (let j = 0; j <= radialSegments; j++) {\n uv.x = i / tubularSegments\n uv.y = j / radialSegments\n\n uvs.push(uv.x, uv.y)\n }\n }\n }\n }\n}\n\nexport default TubeGeometry"],"mappings":"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"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { Color, ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, use } from '@anov/3d-core';
|
|
2
|
-
import { usePath } from "../../3d";
|
|
3
|
-
var lookAtOnYAxis = function lookAtOnYAxis(mesh, targetPosition) {
|
|
4
|
-
var direction = new Vector3().subVectors(targetPosition, mesh.position);
|
|
5
|
-
direction.y = 0;
|
|
6
|
-
direction.normalize();
|
|
7
|
-
var rotationY = Math.atan2(-direction.z, direction.x);
|
|
8
|
-
rotationY -= Math.PI / 2;
|
|
9
|
-
mesh.rotation.y = rotationY + Math.PI;
|
|
10
|
-
};
|
|
11
|
-
var position = [{
|
|
12
|
-
x: -498.20348353985537,
|
|
13
|
-
y: 1.724138326633124,
|
|
14
|
-
z: -281.23472454616785
|
|
15
|
-
}, {
|
|
16
|
-
x: -563.1644534597008,
|
|
17
|
-
y: -7.638570902979723,
|
|
18
|
-
z: -149.5955833695798
|
|
19
|
-
}, {
|
|
20
|
-
x: -539.9109368199106,
|
|
21
|
-
y: -0.7796363631222221,
|
|
22
|
-
z: 4.303779590985869
|
|
23
|
-
}, {
|
|
24
|
-
x: -534.3300967431978,
|
|
25
|
-
y: -1.9484837019957695,
|
|
26
|
-
z: 207.03842215576515
|
|
27
|
-
}, {
|
|
28
|
-
x: -442.78992295689204,
|
|
29
|
-
y: -0.9124291814532626,
|
|
30
|
-
z: 284.6781114942187
|
|
31
|
-
}, {
|
|
32
|
-
x: -283.09754160435295,
|
|
33
|
-
y: -0.8067932128907387,
|
|
34
|
-
z: 284.7632588661927
|
|
35
|
-
}, {
|
|
36
|
-
x: -17.793886943446523,
|
|
37
|
-
y: -0.8170822284307633,
|
|
38
|
-
z: 278.6614163511422
|
|
39
|
-
}, {
|
|
40
|
-
x: 179.67836454455573,
|
|
41
|
-
y: -0.7142971925655957,
|
|
42
|
-
z: 277.5182969378766
|
|
43
|
-
}, {
|
|
44
|
-
x: 508.9391424549631,
|
|
45
|
-
y: -0.06078556583531736,
|
|
46
|
-
z: 270.6384956562051
|
|
47
|
-
}, {
|
|
48
|
-
x: 533.1529366899049,
|
|
49
|
-
y: -0.3130418997158131,
|
|
50
|
-
z: 175.59337885556306
|
|
51
|
-
}, {
|
|
52
|
-
x: 533.9192918796916,
|
|
53
|
-
y: -0.595400047193607,
|
|
54
|
-
z: 70.85117576185621
|
|
55
|
-
}, {
|
|
56
|
-
x: 558.8072691291136,
|
|
57
|
-
y: 5.982457089229797,
|
|
58
|
-
z: -47.46377685009156
|
|
59
|
-
}, {
|
|
60
|
-
x: 536.4516296924203,
|
|
61
|
-
y: 1.629037413908577,
|
|
62
|
-
z: -152.78540121590413
|
|
63
|
-
}, {
|
|
64
|
-
x: 555.1397274226065,
|
|
65
|
-
y: 0.23968594510984076,
|
|
66
|
-
z: -307.35056881373566
|
|
67
|
-
}, {
|
|
68
|
-
x: 476.2494806852892,
|
|
69
|
-
y: -0.8084288516456581,
|
|
70
|
-
z: -345.36949523013845
|
|
71
|
-
}, {
|
|
72
|
-
x: 216.87888929400197,
|
|
73
|
-
y: -0.5794669817644262,
|
|
74
|
-
z: -332.7211786339103
|
|
75
|
-
}, {
|
|
76
|
-
x: 175.22031507466454,
|
|
77
|
-
y: -0.5724182128905113,
|
|
78
|
-
z: -341.87163811528535
|
|
79
|
-
}, {
|
|
80
|
-
x: -35.18223117258549,
|
|
81
|
-
y: -0.6265496863107956,
|
|
82
|
-
z: -379.64710400924196
|
|
83
|
-
}, {
|
|
84
|
-
x: -356.44488560882746,
|
|
85
|
-
y: -0.8819180034963665,
|
|
86
|
-
z: -351.6907599590395
|
|
87
|
-
}, {
|
|
88
|
-
x: -237.58163560440826,
|
|
89
|
-
y: 1.1368683772161603e-13,
|
|
90
|
-
z: -128.96463232189376
|
|
91
|
-
}, {
|
|
92
|
-
x: 196.42648060764338,
|
|
93
|
-
y: 1.1368683772161603e-13,
|
|
94
|
-
z: 55.58793681693976
|
|
95
|
-
}, {
|
|
96
|
-
x: -235.24785890696023,
|
|
97
|
-
y: 0,
|
|
98
|
-
z: 187.57190736438497
|
|
99
|
-
}];
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* todo: other page remove animation
|
|
103
|
-
* @param riseLayer
|
|
104
|
-
*/
|
|
105
|
-
var createRiseLayer = function createRiseLayer(riseLayer) {
|
|
106
|
-
var _use$useScene = use.useScene(),
|
|
107
|
-
scene = _use$useScene.scene,
|
|
108
|
-
camera = _use$useScene.camera;
|
|
109
|
-
var RiseLayer = riseLayer !== null && riseLayer !== void 0 ? riseLayer : 28;
|
|
110
|
-
var riseSpriteMaterial = new ShaderMaterial({
|
|
111
|
-
uniforms: {
|
|
112
|
-
_TintColor: {
|
|
113
|
-
value: new Vector4(new Color('#857125').r, new Color('#857125').g, new Color('#857125').b, 1)
|
|
114
|
-
},
|
|
115
|
-
_MainTex: {
|
|
116
|
-
value: new TextureLoader().load("".concat(usePath, "test03.png"))
|
|
117
|
-
},
|
|
118
|
-
_InvFade: {
|
|
119
|
-
value: 0.5
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
depthTest: false,
|
|
123
|
-
transparent: true,
|
|
124
|
-
vertexShader: /* glsl */"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n ",
|
|
125
|
-
fragmentShader: /* glsl */"\nuniform vec3 _TintColor;\nuniform sampler2D _MainTex;\nuniform float _InvFade;\n\nvarying vec2 vUv;\n\nvoid main() {\n #ifdef USE_SOFTPARTICLES\n float sceneZ = texture2DProj(_CameraDepthTexture, vec4(vUv, 0.0, 1.0)).r;\n float partZ = gl_FragCoord.z / gl_FragCoord.w;\n float fade = clamp(_InvFade * (sceneZ - partZ), 0.0, 1.0);\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0 * fade, texture2D(_MainTex, vUv).a);\n #else\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0, texture2D(_MainTex, vUv).a);\n #endif\n\n\n\n \n}\n "
|
|
126
|
-
});
|
|
127
|
-
position.forEach(function (item) {
|
|
128
|
-
var sprite = new Sprite(riseSpriteMaterial);
|
|
129
|
-
sprite.scale.set(30, 30, 1);
|
|
130
|
-
sprite.rotateZ(-Math.PI / 2);
|
|
131
|
-
sprite.position.set(item.x, item.y + Math.random() * 300, item.z);
|
|
132
|
-
sprite.layers.set(RiseLayer);
|
|
133
|
-
use.useframe(function () {
|
|
134
|
-
lookAtOnYAxis(sprite, camera.position);
|
|
135
|
-
if (sprite.position.y > 300) sprite.position.y = 0;
|
|
136
|
-
sprite.position.y += 1.0;
|
|
137
|
-
});
|
|
138
|
-
scene.add(sprite);
|
|
139
|
-
});
|
|
140
|
-
};
|
|
141
|
-
export default createRiseLayer;
|
|
142
|
-
//# sourceMappingURL=rise.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Color","ShaderMaterial","Sprite","TextureLoader","Vector3","Vector4","use","usePath","lookAtOnYAxis","mesh","targetPosition","direction","subVectors","position","y","normalize","rotationY","Math","atan2","z","x","PI","rotation","createRiseLayer","riseLayer","_use$useScene","useScene","scene","camera","RiseLayer","riseSpriteMaterial","uniforms","_TintColor","value","r","g","b","_MainTex","load","concat","_InvFade","depthTest","transparent","vertexShader","fragmentShader","forEach","item","sprite","scale","set","rotateZ","random","layers","useframe","add"],"sources":["../../../../src/factory/unit/layer/rise.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, ShaderMaterial, Sprite, TextureLoader, Vector3, Vector4, lib, use } from '@anov/3d-core'\nimport { usePath } from '../../3d'\n\nconst lookAtOnYAxis = (mesh: Object3D, targetPosition: Vector3) => {\n const direction = new Vector3().subVectors(targetPosition, mesh.position)\n direction.y = 0\n direction.normalize()\n\n let rotationY = Math.atan2(-direction.z, direction.x)\n\n rotationY -= Math.PI / 2\n\n mesh.rotation.y = rotationY + Math.PI\n}\n\nconst position = [{ x: -498.20348353985537, y: 1.724138326633124, z: -281.23472454616785 },\n { x: -563.1644534597008, y: -7.638570902979723, z: -149.5955833695798 },\n { x: -539.9109368199106, y: -0.7796363631222221, z: 4.303779590985869 },\n { x: -534.3300967431978, y: -1.9484837019957695, z: 207.03842215576515 },\n { x: -442.78992295689204, y: -0.9124291814532626, z: 284.6781114942187 },\n { x: -283.09754160435295, y: -0.8067932128907387, z: 284.7632588661927 },\n { x: -17.793886943446523, y: -0.8170822284307633, z: 278.6614163511422 },\n { x: 179.67836454455573, y: -0.7142971925655957, z: 277.5182969378766 },\n { x: 508.9391424549631, y: -0.06078556583531736, z: 270.6384956562051 },\n { x: 533.1529366899049, y: -0.3130418997158131, z: 175.59337885556306 },\n { x: 533.9192918796916, y: -0.595400047193607, z: 70.85117576185621 },\n { x: 558.8072691291136, y: 5.982457089229797, z: -47.46377685009156 },\n { x: 536.4516296924203, y: 1.629037413908577, z: -152.78540121590413 },\n { x: 555.1397274226065, y: 0.23968594510984076, z: -307.35056881373566 },\n { x: 476.2494806852892, y: -0.8084288516456581, z: -345.36949523013845 },\n { x: 216.87888929400197, y: -0.5794669817644262, z: -332.7211786339103 },\n { x: 175.22031507466454, y: -0.5724182128905113, z: -341.87163811528535 },\n { x: -35.18223117258549, y: -0.6265496863107956, z: -379.64710400924196 },\n { x: -356.44488560882746, y: -0.8819180034963665, z: -351.6907599590395 },\n { x: -237.58163560440826, y: 1.1368683772161603e-13, z: -128.96463232189376 },\n { x: 196.42648060764338, y: 1.1368683772161603e-13, z: 55.58793681693976 },\n { x: -235.24785890696023, y: 0, z: 187.57190736438497 },\n]\n\n/**\n * todo: other page remove animation\n * @param riseLayer\n */\nconst createRiseLayer = (riseLayer?: number) => {\n const { scene, camera } = use.useScene()\n const RiseLayer = riseLayer ?? 28\n\n const riseSpriteMaterial = new ShaderMaterial(\n {\n uniforms: {\n _TintColor: {\n value: new Vector4(new Color('#857125').r, new Color('#857125').g, new Color('#857125').b, 1),\n },\n _MainTex: {\n value: new TextureLoader().load(`${usePath}test03.png`),\n },\n _InvFade: {\n value: 0.5,\n },\n },\n depthTest: false,\n transparent: true,\n vertexShader: /* glsl */`\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */`\nuniform vec3 _TintColor;\nuniform sampler2D _MainTex;\nuniform float _InvFade;\n\nvarying vec2 vUv;\n\nvoid main() {\n #ifdef USE_SOFTPARTICLES\n float sceneZ = texture2DProj(_CameraDepthTexture, vec4(vUv, 0.0, 1.0)).r;\n float partZ = gl_FragCoord.z / gl_FragCoord.w;\n float fade = clamp(_InvFade * (sceneZ - partZ), 0.0, 1.0);\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0 * fade, texture2D(_MainTex, vUv).a);\n #else\n gl_FragColor = vec4(texture2D(_MainTex, vUv).rgb * _TintColor.rgb * 2.0, texture2D(_MainTex, vUv).a);\n #endif\n\n\n\n \n}\n `,\n\n },\n )\n\n position.forEach((item) => {\n const sprite = new Sprite(\n riseSpriteMaterial as any,\n )\n\n sprite.scale.set(30, 30, 1)\n sprite.rotateZ(-Math.PI / 2)\n\n sprite.position.set(item.x, item.y + Math.random() * 300, item.z)\n sprite.layers.set(RiseLayer)\n\n use.useframe(() => {\n lookAtOnYAxis(sprite, camera!.position)\n\n if (sprite.position.y > 300)\n sprite.position.y = 0\n\n sprite.position.y += 1.0\n })\n\n scene!.add(sprite)\n })\n}\n\nexport default createRiseLayer"],"mappings":"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"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
-
import { Color, lib } from '@anov/3d-core';
|
|
15
|
-
import regionMap from "../regionData";
|
|
16
|
-
var Line2 = lib.Line2,
|
|
17
|
-
LineGeometry = lib.LineGeometry,
|
|
18
|
-
LineMaterial = lib.LineMaterial;
|
|
19
|
-
var linePosition = [{
|
|
20
|
-
label: regionMap.reform.title,
|
|
21
|
-
id: '1',
|
|
22
|
-
color: new Color('red').getHex(),
|
|
23
|
-
belongTo: regionMap.reform.id,
|
|
24
|
-
points: [].concat(_toConsumableArray(regionMap.reform.area), [regionMap.reform.area[0]])
|
|
25
|
-
}, {
|
|
26
|
-
label: regionMap.reduction.title,
|
|
27
|
-
id: '2',
|
|
28
|
-
color: new Color('red').getHex(),
|
|
29
|
-
belongTo: regionMap.reduction.id,
|
|
30
|
-
points: [].concat(_toConsumableArray(regionMap.reduction.area), [regionMap.reduction.area[0]])
|
|
31
|
-
}, {
|
|
32
|
-
label: regionMap.crudeOil.title,
|
|
33
|
-
id: '3',
|
|
34
|
-
color: new Color('red').getHex(),
|
|
35
|
-
belongTo: regionMap.crudeOil.id,
|
|
36
|
-
points: [].concat(_toConsumableArray(regionMap.crudeOil.area), [regionMap.crudeOil.area[0]])
|
|
37
|
-
}, {
|
|
38
|
-
label: regionMap.catalyticCracking.title,
|
|
39
|
-
id: '4',
|
|
40
|
-
color: new Color('red').getHex(),
|
|
41
|
-
belongTo: regionMap.catalyticCracking.id,
|
|
42
|
-
points: [].concat(_toConsumableArray(regionMap.catalyticCracking.area), [regionMap.catalyticCracking.area[0]])
|
|
43
|
-
}, {
|
|
44
|
-
label: regionMap.hydrocrackingUnit.title,
|
|
45
|
-
id: '5',
|
|
46
|
-
color: new Color('red').getHex(),
|
|
47
|
-
belongTo: regionMap.hydrocrackingUnit.id,
|
|
48
|
-
points: [].concat(_toConsumableArray(regionMap.hydrocrackingUnit.area), [regionMap.hydrocrackingUnit.area[0]])
|
|
49
|
-
}, {
|
|
50
|
-
label: regionMap.cokingUnit.title,
|
|
51
|
-
id: '6',
|
|
52
|
-
color: new Color('yellow').getHex(),
|
|
53
|
-
belongTo: regionMap.cokingUnit.id,
|
|
54
|
-
points: [].concat(_toConsumableArray(regionMap.cokingUnit.area), [regionMap.cokingUnit.area[0]])
|
|
55
|
-
}, {
|
|
56
|
-
label: regionMap.administrative.title,
|
|
57
|
-
id: '7',
|
|
58
|
-
color: new Color('red').getHex(),
|
|
59
|
-
belongTo: regionMap.administrative.id,
|
|
60
|
-
points: [].concat(_toConsumableArray(regionMap.administrative.area), [regionMap.administrative.area[0]])
|
|
61
|
-
}];
|
|
62
|
-
var LineManage = /*#__PURE__*/function () {
|
|
63
|
-
function LineManage(gobal, options) {
|
|
64
|
-
_classCallCheck(this, LineManage);
|
|
65
|
-
_defineProperty(this, "scene", void 0);
|
|
66
|
-
_defineProperty(this, "lineMesh", new Map());
|
|
67
|
-
_defineProperty(this, "option", void 0);
|
|
68
|
-
this.scene = gobal.scene.scene;
|
|
69
|
-
this.option = options || {};
|
|
70
|
-
}
|
|
71
|
-
_createClass(LineManage, [{
|
|
72
|
-
key: "generateLine",
|
|
73
|
-
value: function generateLine() {
|
|
74
|
-
var _this = this;
|
|
75
|
-
linePosition.forEach(function (item) {
|
|
76
|
-
var _this$option$visible, _this$option;
|
|
77
|
-
var geometry = new LineGeometry();
|
|
78
|
-
var points = [];
|
|
79
|
-
item.points.forEach(function (point) {
|
|
80
|
-
points.push(point[0], point[1], point[2]);
|
|
81
|
-
});
|
|
82
|
-
geometry.setPositions(points);
|
|
83
|
-
var line = new Line2(geometry, new LineMaterial({
|
|
84
|
-
color: item.color,
|
|
85
|
-
linewidth: 0.005
|
|
86
|
-
}));
|
|
87
|
-
line.visible = (_this$option$visible = (_this$option = _this.option) === null || _this$option === void 0 ? void 0 : _this$option.visible) !== null && _this$option$visible !== void 0 ? _this$option$visible : true;
|
|
88
|
-
_this.scene.add(line);
|
|
89
|
-
_this.lineMesh.set(item.id, line);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}]);
|
|
93
|
-
return LineManage;
|
|
94
|
-
}();
|
|
95
|
-
export default LineManage;
|
|
96
|
-
//# sourceMappingURL=line.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Color","lib","regionMap","Line2","LineGeometry","LineMaterial","linePosition","label","reform","title","id","color","getHex","belongTo","points","concat","_toConsumableArray","area","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","LineManage","gobal","options","_classCallCheck","_defineProperty","Map","scene","option","_createClass","key","value","generateLine","_this","forEach","item","_this$option$visible","_this$option","geometry","point","push","setPositions","line","linewidth","visible","add","lineMesh","set"],"sources":["../../../src/factory/unit/line.ts"],"sourcesContent":["import type { Object3D, Scene } from '@anov/3d-core'\nimport { Color, lib } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport regionMap from '../regionData'\n\nconst { Line2, LineGeometry, LineMaterial } = lib\nconst linePosition = [\n {\n label: regionMap.reform.title,\n id: '1',\n color: new Color('red').getHex(),\n belongTo: regionMap.reform.id,\n points: [...regionMap.reform.area, regionMap.reform.area[0]],\n },\n {\n label: regionMap.reduction.title,\n id: '2',\n color: new Color('red').getHex(),\n belongTo: regionMap.reduction.id,\n points: [...regionMap.reduction.area, regionMap.reduction.area[0]],\n },\n {\n label: regionMap.crudeOil.title,\n id: '3',\n color: new Color('red').getHex(),\n belongTo: regionMap.crudeOil.id,\n points: [...regionMap.crudeOil.area, regionMap.crudeOil.area[0]],\n },\n {\n label: regionMap.catalyticCracking.title,\n id: '4',\n color: new Color('red').getHex(),\n belongTo: regionMap.catalyticCracking.id,\n points: [...regionMap.catalyticCracking.area, regionMap.catalyticCracking.area[0]],\n },\n {\n label: regionMap.hydrocrackingUnit.title,\n id: '5',\n color: new Color('red').getHex(),\n belongTo: regionMap.hydrocrackingUnit.id,\n points: [...regionMap.hydrocrackingUnit.area, regionMap.hydrocrackingUnit.area[0]],\n },\n {\n label: regionMap.cokingUnit.title,\n id: '6',\n color: new Color('yellow').getHex(),\n belongTo: regionMap.cokingUnit.id,\n points: [...regionMap.cokingUnit.area, regionMap.cokingUnit.area[0]],\n },\n {\n label: regionMap.administrative.title,\n id: '7',\n color: new Color('red').getHex(),\n belongTo: regionMap.administrative.id,\n points: [...regionMap.administrative.area, regionMap.administrative.area[0]],\n },\n]\n\ntype LineManageOption = {\n visible?: boolean\n}\n\nclass LineManage {\n private scene: Scene\n readonly lineMesh: Map<string, Object3D> = new Map()\n private option: LineManageOption\n\n constructor(gobal: Factory3D, options?: LineManageOption) {\n this.scene = gobal.scene.scene\n this.option = options || {}\n }\n\n generateLine() {\n linePosition.forEach((item) => {\n const geometry = new LineGeometry()\n const points = []\n item.points.forEach((point) => {\n points.push(point[0], point[1], point[2])\n })\n\n geometry.setPositions(points)\n\n const line = new Line2(geometry,\n new LineMaterial({\n color: item.color,\n linewidth: 0.005,\n }))\n\n line.visible = this.option?.visible ?? true\n this.scene.add(line)\n this.lineMesh.set(item.id, line)\n })\n }\n}\n\nexport default LineManage"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","Vector3","use","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","_generatePoi","_callee2","_this","wordLength","ratio","unFrame","_callee2$","_context2","_ref","_callee","region","option","sprite","changeWallState","unClick","_callee$","_context","title","Math","max","poiHeight","animation","grow","duration","fadeIn","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","regionPlane","planeMesh","get","show","_this$dialogPoi","dialogPoi","visible","wallMesh","uniforms","wallGrowFrame","useframe","addEventListener","tag","overview","event","cameraUtil","focus","area","pitch","addDialogPanel","point","poiEventListener","_x","generatePoi","_camera$position","hratio","minDistance","maxDistance","_use$useScene","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","data","dom","document","createElement","assign","style","fontSize","backgroundImage","concat","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","remove","removeFromParent","clear","_this$wallManage","_this2","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = (Math.max(wordLength * (wordLength > 6 ? 48 : 50), 180) / this.poiHeight)\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio + 0.3, ratio + 0.4)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n this.gobal.cameraUtil.focus({ target: region.area, pitch: 0 }).then(() => {\n this.addDialogPanel(region, event.point)\n })\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0, hratio) {\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * hratio * 0.8 || scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '26px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei3D',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '8px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '18px'\n img.style.top = '13px'\n img.style.width = '30px'\n img.style.height = '30px'\n dom.appendChild(img)\n\n const label = document.createElement('label')\n label.style.marginLeft = '16px'\n label.innerText = data.title\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n },\n\n )\n this.dialogPoi.position.copy(position.clone().add(new Vector3(10, 0, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
-
import { BufferAttribute, BufferGeometry, DoubleSide, Mesh, MeshBasicMaterial, Vector3 } from '@anov/3d-core';
|
|
9
|
-
import { regionMap } from "../regionData";
|
|
10
|
-
var RegionPlane = /*#__PURE__*/function () {
|
|
11
|
-
function RegionPlane(gobal) {
|
|
12
|
-
_classCallCheck(this, RegionPlane);
|
|
13
|
-
_defineProperty(this, "scene", void 0);
|
|
14
|
-
_defineProperty(this, "planeMesh", new Map());
|
|
15
|
-
this.scene = gobal.scene.scene;
|
|
16
|
-
this.generatePlane();
|
|
17
|
-
}
|
|
18
|
-
_createClass(RegionPlane, [{
|
|
19
|
-
key: "generatePlane",
|
|
20
|
-
value: function generatePlane() {
|
|
21
|
-
var _this = this;
|
|
22
|
-
Object.values(regionMap).forEach(function (region) {
|
|
23
|
-
var area = region.area;
|
|
24
|
-
var areaVector3Arrat = area.map(function (v) {
|
|
25
|
-
return new Vector3(v[0], 20, v[2]);
|
|
26
|
-
});
|
|
27
|
-
var geometry = _this.createFaceGeometry(areaVector3Arrat[0], areaVector3Arrat[1], areaVector3Arrat[2], areaVector3Arrat[3]);
|
|
28
|
-
var plane = new Mesh(geometry, new MeshBasicMaterial({
|
|
29
|
-
color: '#f9ba41',
|
|
30
|
-
side: DoubleSide,
|
|
31
|
-
transparent: true,
|
|
32
|
-
opacity: 0,
|
|
33
|
-
depthTest: false
|
|
34
|
-
}));
|
|
35
|
-
_this.planeMesh.set(region.id, plane);
|
|
36
|
-
_this.scene.add(plane);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}, {
|
|
40
|
-
key: "createFaceGeometry",
|
|
41
|
-
value: function createFaceGeometry(point1, point2, point3, point4) {
|
|
42
|
-
var vertices = [point1.x, point1.y, point1.z, point2.x, point2.y, point2.z, point3.x, point3.y, point3.z, point4.x, point4.y, point4.z];
|
|
43
|
-
var indices = [0, 1, 2, 0, 2, 3];
|
|
44
|
-
var normal = new Vector3();
|
|
45
|
-
normal.crossVectors(new Vector3(point2.x - point1.x, point2.y - point1.y, point2.z - point1.z), new Vector3(point3.x - point1.x, point3.y - point1.y, point3.z - point1.z));
|
|
46
|
-
normal.normalize();
|
|
47
|
-
var normals = [normal.x, normal.y, normal.z, normal.x, normal.y, normal.z, normal.x, normal.y, normal.z, normal.x, normal.y, normal.z];
|
|
48
|
-
var geometry = new BufferGeometry();
|
|
49
|
-
geometry.setAttribute('position', new BufferAttribute(new Float32Array(vertices), 3));
|
|
50
|
-
geometry.setAttribute('normal', new BufferAttribute(new Float32Array(normals), 3));
|
|
51
|
-
geometry.setIndex(indices);
|
|
52
|
-
return geometry;
|
|
53
|
-
}
|
|
54
|
-
}, {
|
|
55
|
-
key: "remove",
|
|
56
|
-
value: function remove() {
|
|
57
|
-
this.planeMesh.forEach(function (mesh) {
|
|
58
|
-
mesh.removeFromParent();
|
|
59
|
-
mesh.remove();
|
|
60
|
-
|
|
61
|
-
// @ts-ignore
|
|
62
|
-
mesh.geometry.dispose();
|
|
63
|
-
// @ts-ignore
|
|
64
|
-
mesh.material.dispose();
|
|
65
|
-
});
|
|
66
|
-
this.planeMesh.clear();
|
|
67
|
-
}
|
|
68
|
-
}]);
|
|
69
|
-
return RegionPlane;
|
|
70
|
-
}();
|
|
71
|
-
export default RegionPlane;
|
|
72
|
-
//# sourceMappingURL=region.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["BufferAttribute","BufferGeometry","DoubleSide","Mesh","MeshBasicMaterial","Vector3","regionMap","RegionPlane","gobal","_classCallCheck","_defineProperty","Map","scene","generatePlane","_createClass","key","value","_this","Object","values","forEach","region","area","areaVector3Arrat","map","v","geometry","createFaceGeometry","plane","color","side","transparent","opacity","depthTest","planeMesh","set","id","add","point1","point2","point3","point4","vertices","x","y","z","indices","normal","crossVectors","normalize","normals","setAttribute","Float32Array","setIndex","remove","mesh","removeFromParent","dispose","material","clear"],"sources":["../../../src/factory/unit/region.ts"],"sourcesContent":["import type { Object3D, Scene } from '@anov/3d-core'\nimport { BufferAttribute, BufferGeometry, DoubleSide, Mesh, MeshBasicMaterial, Vector3, utils } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass RegionPlane {\n private scene: Scene\n readonly planeMesh: Map<string, Object3D> = new Map()\n\n constructor(gobal: Factory3D) {\n this.scene = gobal.scene.scene\n this.generatePlane()\n }\n\n generatePlane() {\n Object.values(regionMap).forEach((region) => {\n const { area } = region\n const areaVector3Arrat = area.map(v => new Vector3(v[0], 20, v[2]))\n const geometry = this.createFaceGeometry(areaVector3Arrat[0], areaVector3Arrat[1], areaVector3Arrat[2], areaVector3Arrat[3])\n const plane = new Mesh(geometry, new MeshBasicMaterial({ color: '#f9ba41', side: DoubleSide, transparent: true, opacity: 0, depthTest: false }))\n this.planeMesh.set(region.id, plane)\n\n this.scene.add(plane)\n })\n }\n\n createFaceGeometry(point1, point2, point3, point4) {\n const vertices = [\n point1.x, point1.y, point1.z,\n point2.x, point2.y, point2.z,\n point3.x, point3.y, point3.z,\n point4.x, point4.y, point4.z,\n ]\n\n const indices = [\n 0, 1, 2,\n 0, 2, 3,\n ]\n\n const normal = new Vector3()\n normal.crossVectors(new Vector3(point2.x - point1.x, point2.y - point1.y, point2.z - point1.z),\n new Vector3(point3.x - point1.x, point3.y - point1.y, point3.z - point1.z))\n normal.normalize()\n const normals = [\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n normal.x, normal.y, normal.z,\n ]\n\n const geometry = new BufferGeometry()\n\n geometry.setAttribute('position', new BufferAttribute(new Float32Array(vertices), 3))\n geometry.setAttribute('normal', new BufferAttribute(new Float32Array(normals), 3))\n geometry.setIndex(indices)\n\n return geometry\n }\n\n remove() {\n this.planeMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n\n // @ts-ignore\n mesh.geometry.dispose()\n // @ts-ignore\n mesh.material.dispose()\n })\n this.planeMesh.clear()\n }\n}\n\nexport default RegionPlane"],"mappings":"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"}
|