-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKilavuzCizgiJS.js
98 lines (82 loc) · 3.58 KB
/
KilavuzCizgiJS.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
Qt.include("three.js")
var m_group , m_scene;
function initKilavuzCizgi(group,scene){
m_group = group;
m_scene = scene;
}
function KilavuzCizgi(adi,konum,uzunluk,aci,renk,size,arrowRenk,blokGroup)
{
this.adi = adi;
this.konum = (konum !== undefined) ? konum : new THREE.Vector3(0,0,0)
this.uzunluk = (uzunluk !== undefined) ? uzunluk : 25
this.aci = (aci !== undefined) ? aci : new THREE.Vector3(0,0,0)
this.renk = (renk !== undefined) ? renk : 0x000000
this.arrowRenk = (arrowRenk !== undefined) ? arrowRenk : 0x009811;
this.size = (size !== undefined || size !== 0) ? size : 1
this.meshSelf = undefined
this.blokGroup = blokGroup;
this.kCizgi = kCizgiOlustur(this)
}
function kCizgiOlustur(struct)
{
var cizgiGrup = new THREE.Group();
var silindirGeo = new THREE.CylinderGeometry( 0.5 * struct.size, 0.5 * struct.size, struct.uzunluk -8 * struct.size, 32 );
var silindirMat = new THREE.MeshBasicMaterial( {color: struct.renk} );
var silindir = new THREE.Mesh( silindirGeo, silindirMat );
silindir.name = struct.adi;
silindir.position.x = 0;
silindir.position.y = 0;
silindir.position.z = 0;
silindir.rotation.x = 0;
silindir.rotation.y = 0;
silindir.rotation.z = 0;
cizgiGrup.add(silindir)
var solKoniGeo = new THREE.CylinderGeometry( 0, 1.5 * struct.size, 4 * struct.size,32, 1 );
var solKoniMat = new THREE.MeshBasicMaterial( {color: struct.arrowRenk} );
var solKoni = new THREE.Mesh( solKoniGeo, solKoniMat );
solKoni.position.x = 0;
solKoni.position.y = struct.uzunluk/2 + 1 - 4 * struct.size;
solKoni.position.z = 0;
solKoni.rotation.x = 0;
solKoni.rotation.y = 0;
solKoni.rotation.z = 0;
cizgiGrup.add(solKoni);
var sagKoniGeo = new THREE.CylinderGeometry( 0, 1.5 * struct.size, 4 * struct.size, 32, 1 );
var sagKoniMat = new THREE.MeshBasicMaterial( {color: struct.arrowRenk} );
var sagKoni = new THREE.Mesh( sagKoniGeo, sagKoniMat );
sagKoni.position.x = 0;
sagKoni.position.y = -struct.uzunluk/2 -1 + 4 * struct.size;
sagKoni.position.z = 0;
sagKoni.rotation.x = (Math.PI / 180) * 180/*180 derece dön Y Aksında*/;
sagKoni.rotation.y = 0;
sagKoni.rotation.z = 0;
cizgiGrup.add(sagKoni);
cizgiGrup.position.x = struct.konum.x;
cizgiGrup.position.y = struct.konum.y;
cizgiGrup.position.z = struct.konum.z;
cizgiGrup.rotation.x = (Math.PI / 180) * struct.aci.x;
cizgiGrup.rotation.y = (Math.PI / 180) * struct.aci.y;
cizgiGrup.rotation.z = (Math.PI / 180) * struct.aci.z;
cizgiGrup.tip = "KILAVUZCIZGI"
struct.meshSelf = cizgiGrup;
struct.blokGroup.add(cizgiGrup);
return cizgiGrup;
}
function changeKilavuzCizgi(struct){
for(var i = 0; i< m_group.children.length ; i++){
for(var j = 0 ; j< m_group.children[i].children.length; j++)
{
if(m_group.children[i].children[j].children[0] !== undefined){
if(m_group.children[i].children[j].children[0].name === struct.adi)
{
m_scene.remove(m_group);
delete m_group.children[i].children[j];
m_group.children[i].children.splice(j,1);
kCizgiOlustur(struct);
m_scene.add(m_group);
return;
}
}
}
}
}