Commit 353addd4d73986d68fc84085bb3bef4525f0edc7
1 parent
670b6d6f84
Exists in
RM-1508
Roof
Showing 1 changed file with 47 additions and 22 deletions Side-by-side Diff
js/view3d.js
... | ... | @@ -18,6 +18,11 @@ |
18 | 18 | var floor_height = 960; |
19 | 19 | var isViewHandrail = false; |
20 | 20 | |
21 | +var roofTan1 = 300/(1810/2); | |
22 | +var roofTan2 = 300/1810; | |
23 | + | |
24 | +var heightRoof = 0; | |
25 | + | |
21 | 26 | var wallPaintTexture; |
22 | 27 | var wallPaint = []; |
23 | 28 | var loader = new THREE.TextureLoader(); |
24 | 29 | |
... | ... | @@ -46,11 +51,11 @@ |
46 | 51 | |
47 | 52 | var wall3D = { |
48 | 53 | 'height_startpoint': converMMtoPX(0), |
49 | - 'height_endpoint': converMMtoPX(2330), | |
54 | + 'height_endpoint': converMMtoPX(1850), | |
50 | 55 | }; |
51 | 56 | var column3D = { |
52 | 57 | 'height_startpoint': converMMtoPX(0), |
53 | - 'height_endpoint': converMMtoPX(2330), | |
58 | + 'height_endpoint': converMMtoPX(1850), | |
54 | 59 | }; |
55 | 60 | var door3D = { |
56 | 61 | 'height_startpoint': converMMtoPX(100), |
57 | 62 | |
58 | 63 | |
... | ... | @@ -246,20 +251,22 @@ |
246 | 251 | var _3dobject = stepper[3]; |
247 | 252 | drawStepper(scene, _3dxy, _3dobject); |
248 | 253 | } |
249 | - | |
250 | - | |
254 | + | |
251 | 255 | if (!inside) { |
252 | 256 | // roof 101 |
253 | 257 | var roofList = getArray3dCadByType(101); |
254 | 258 | if (roofList.length != 0) { |
259 | + | |
260 | + heightRoof = roofTan2*floorInfo[2][2]; | |
261 | + | |
255 | 262 | roofList = roofList[0]; |
256 | 263 | var _3dxy = { |
257 | 264 | 'start_X': (roofList[2][0]), |
258 | 265 | 'start_Y': (roofList[2][1]), |
259 | 266 | 'width_X': (roofList[2][2]), |
260 | 267 | 'width_Y': (roofList[2][3]), |
261 | - 'height_startpoint': converMMtoPX(2110), | |
262 | - 'height_endpoint': converMMtoPX(2110 + 50), | |
268 | + 'height_startpoint': wall3D.height_endpoint + converMMtoPX( heightRoof/2- 300), | |
269 | + 'height_endpoint': wall3D.height_endpoint+ converMMtoPX(heightRoof/2- 300+50), | |
263 | 270 | }; |
264 | 271 | var _3dobject = roofList[3]; |
265 | 272 | console.log(baconInfo); |
266 | 273 | |
... | ... | @@ -268,14 +275,17 @@ |
268 | 275 | // roof 102 |
269 | 276 | var roofList = getArray3dCadByType(102); |
270 | 277 | if (roofList.length != 0) { |
278 | + | |
279 | + heightRoof = roofTan2*floorInfo[2][2]; | |
280 | + | |
271 | 281 | roofList = roofList[0]; |
272 | 282 | var _3dxy = { |
273 | 283 | 'start_X': (roofList[2][0]), |
274 | 284 | 'start_Y': (roofList[2][1]), |
275 | 285 | 'width_X': (roofList[2][2]), |
276 | 286 | 'width_Y': (roofList[2][3]), |
277 | - 'height_startpoint': converMMtoPX(2110), | |
278 | - 'height_endpoint': converMMtoPX(2110 + 50), | |
287 | + 'height_startpoint': wall3D.height_endpoint + converMMtoPX( heightRoof/2- 300), | |
288 | + 'height_endpoint': wall3D.height_endpoint+ converMMtoPX(heightRoof/2- 300+50), | |
279 | 289 | }; |
280 | 290 | var _3dobject = roofList[3]; |
281 | 291 | drawRoof3D(scene, _3dxy, _3dobject, 102); |
282 | 292 | |
... | ... | @@ -283,14 +293,16 @@ |
283 | 293 | // roof 103 |
284 | 294 | var roofList = getArray3dCadByType(103); |
285 | 295 | if (roofList.length != 0) { |
296 | + heightRoof = roofTan2*floorInfo[2][3]; | |
297 | + | |
286 | 298 | roofList = roofList[0]; |
287 | 299 | var _3dxy = { |
288 | 300 | 'start_X': (roofList[2][0]), |
289 | 301 | 'start_Y': (roofList[2][1]), |
290 | 302 | 'width_X': (roofList[2][2]), |
291 | 303 | 'width_Y': (roofList[2][3]), |
292 | - 'height_startpoint': converMMtoPX(2110), | |
293 | - 'height_endpoint': converMMtoPX(2110 + 50), | |
304 | + 'height_startpoint': wall3D.height_endpoint + converMMtoPX( heightRoof/2 - 300), | |
305 | + 'height_endpoint': wall3D.height_endpoint+ converMMtoPX(heightRoof/2- 300 +50), | |
294 | 306 | }; |
295 | 307 | var _3dobject = roofList[3]; |
296 | 308 | drawRoof3D(scene, _3dxy, _3dobject, 103); |
297 | 309 | |
... | ... | @@ -298,14 +310,18 @@ |
298 | 310 | // roof 104 |
299 | 311 | var roofList = getArray3dCadByType(104); |
300 | 312 | if (roofList.length != 0) { |
313 | + | |
314 | + | |
315 | + heightRoof = roofTan2*floorInfo[2][3]; | |
316 | + | |
301 | 317 | roofList = roofList[0]; |
302 | 318 | var _3dxy = { |
303 | 319 | 'start_X': (roofList[2][0]), |
304 | 320 | 'start_Y': (roofList[2][1]), |
305 | 321 | 'width_X': (roofList[2][2]), |
306 | 322 | 'width_Y': (roofList[2][3]), |
307 | - 'height_startpoint': converMMtoPX(2110), | |
308 | - 'height_endpoint': converMMtoPX(2110 + 50), | |
323 | + 'height_startpoint': wall3D.height_endpoint + converMMtoPX( heightRoof/2- 300), | |
324 | + 'height_endpoint': wall3D.height_endpoint+ converMMtoPX(heightRoof/2- 300+50), | |
309 | 325 | }; |
310 | 326 | var _3dobject = roofList[3]; |
311 | 327 | drawRoof3D(scene, _3dxy, _3dobject, 104); |
312 | 328 | |
... | ... | @@ -743,8 +759,10 @@ |
743 | 759 | } else { |
744 | 760 | _3dxy.width_Y = converMMtoPX(wallWidth); |
745 | 761 | } |
746 | - _3dxy.height_endpoint = wall3D.height_endpoint + floor3D.height_endpoint; | |
762 | + console.log("drawWal heightRoof: " + heightRoof); | |
763 | + _3dxy.height_endpoint = wall3D.height_endpoint + floor3D.height_endpoint + converMMtoPX(heightRoof) ; | |
747 | 764 | _3dxy.height_startpoint = wall3D.height_startpoint + floor3D.height_endpoint; |
765 | + | |
748 | 766 | var material = { |
749 | 767 | 'tex': wallTexture, |
750 | 768 | }; |
... | ... | @@ -840,7 +858,7 @@ |
840 | 858 | |
841 | 859 | //Draw Pillar |
842 | 860 | function drawPillar(scene, _3dxy, _3dobject) { |
843 | - _3dxy.height_endpoint = column3D.height_endpoint + floor3D.height_endpoint; | |
861 | + _3dxy.height_endpoint = column3D.height_endpoint + floor3D.height_endpoint + converMMtoPX(heightRoof) ; | |
844 | 862 | _3dxy.height_startpoint = floor3D.height_endpoint; |
845 | 863 | |
846 | 864 | drawPillarWithPaintInside(scene, _3dxy, _3dobject) |
... | ... | @@ -1923,7 +1941,7 @@ |
1923 | 1941 | } |
1924 | 1942 | var typeRoof = _3dobject[0].split('-'); |
1925 | 1943 | typeRoof = typeRoof[0] + '-' + typeRoof[1]; |
1926 | - var heightRoof = 300; | |
1944 | + //var heightRoof = 300; | |
1927 | 1945 | // |
1928 | 1946 | var rType = JSON.parse(JSON.stringify(roofType)); |
1929 | 1947 | if (rotate == 1) |
... | ... | @@ -1936,6 +1954,7 @@ |
1936 | 1954 | type = 104; |
1937 | 1955 | // |
1938 | 1956 | if (typeRoof == 'roof-2') { |
1957 | + var tan = roofTan2; | |
1939 | 1958 | |
1940 | 1959 | roof3D = drawObj(scene, _3dxy, _3dobject, material); |
1941 | 1960 | roof_2roof_obj = null; |
1942 | 1961 | |
1943 | 1962 | |
1944 | 1963 | |
1945 | 1964 | |
... | ... | @@ -1945,21 +1964,26 @@ |
1945 | 1964 | _3dxyRoof = JSON.parse(JSON.stringify(_3dxy)); |
1946 | 1965 | //// |
1947 | 1966 | if (type == 101) { |
1948 | - var tan = (heightRoof) / (floorInfo[2][3]); | |
1967 | + //var tan = (heightRoof) / (floorInfo[2][3]); | |
1968 | + //heightRoof = tan*floorInfo[2][3]; | |
1969 | + | |
1949 | 1970 | var b = 2030 +tan*(floorInfo[2][3]-(converPxtoMm(_3dxyRoof.width_Y)/2 - 300)) + 50 / 2; |
1950 | - // var b = 1820 + converPxtoMm(tan * (floorInfo[2][3])-(_3dxyRoof.width_Y/2-converMMtoPX(300))) + 50 / 2; | |
1971 | + // var b = 1820 + converPxtoMm(tan * (floorInfo[2][3])-(_3dxyRoof.width_Y/2-converMMtoPX(heightRoof))) + 50 / 2; | |
1951 | 1972 | roof3D.rotation.x = Math.atan(tan); |
1952 | 1973 | } |
1953 | 1974 | else if (type == 102) { |
1954 | - var tan = (heightRoof) / (floorInfo[2][3]); | |
1975 | + //var tan = (heightRoof) / (floorInfo[2][3]); | |
1976 | + //heightRoof = tan*floorInfo[2][3]; | |
1955 | 1977 | var b = 2030 +tan*(floorInfo[2][3]-(converPxtoMm(_3dxyRoof.width_Y)/2 - 300)) + 50 / 2; |
1956 | 1978 | roof3D.rotation.x = -Math.atan(tan); |
1957 | 1979 | } else if (type == 103) { |
1958 | - var tan = (heightRoof) / (floorInfo[2][2]); | |
1980 | + //var tan = (heightRoof) / (floorInfo[2][2]); | |
1981 | + //heightRoof = tan*floorInfo[2][2]; | |
1959 | 1982 | var b = 2030 +tan*(floorInfo[2][2]-(converPxtoMm(_3dxyRoof.width_X)/2 - 300)) + 50 / 2; |
1960 | 1983 | roof3D.rotation.z = -Math.atan(tan); |
1961 | 1984 | } else if (type == 104) { |
1962 | - var tan = (heightRoof) / (floorInfo[2][2]); | |
1985 | + //var tan = (heightRoof) / (floorInfo[2][2]); | |
1986 | + //heightRoof = tan*floorInfo[2][2]; | |
1963 | 1987 | var b = 2030 +tan*(floorInfo[2][2]-(converPxtoMm(_3dxyRoof.width_X)/2 - 300)) + 50 / 2; |
1964 | 1988 | roof3D.rotation.z = Math.atan(tan); |
1965 | 1989 | } |
1966 | 1990 | |
... | ... | @@ -1992,14 +2016,15 @@ |
1992 | 2016 | scene.add(roofSlice); |
1993 | 2017 | } else if (typeRoof == 'roof-1') { |
1994 | 2018 | var diff = 300; |
1995 | - var heightRoof = 300; | |
2019 | + //var heightRoof = 300; | |
2020 | + tan = roofTan1; | |
1996 | 2021 | roof3D = null; |
1997 | 2022 | if (type == 101 || type === 102) { |
1998 | 2023 | var roof_1roof = JSON.parse(JSON.stringify(_3dxy)); |
1999 | 2024 | //roof1 |
2000 | 2025 | roof_1roof.width_Y = roof_1roof.width_Y / 2; |
2001 | 2026 | roof_1roof_obj = drawObj(scene, roof_1roof, _3dobject, material); |
2002 | - var tan = converMMtoPX(heightRoof) / (roof_1roof.width_Y); | |
2027 | + //var tan = converMMtoPX(heightRoof) / (roof_1roof.width_Y); | |
2003 | 2028 | roof_1roof_obj.rotation.x = -Math.atan(tan); |
2004 | 2029 | var c = 2030 + 300 - tan * roof_1roof.width_Y * 2; |
2005 | 2030 | roof_1roof_obj.position.y = converMMtoPX(c) + floor3D.height_endpoint - floor3D.height_startpoint; |