Toggle navigation
Toggle navigation
This project
Loading...
Sign in
arcs
/
arcs.js
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
3
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Jean-Yves Didier
2017-07-10 19:45:49 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
dde2fb6de4c59e833ea5e7593b958282645aa63c
dde2fb6d
1 parent
2892caac
component to model pipe-networks
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
1 deletions
components/geojson.js
components/geojson.js
View file @
dde2fb6
arcs_module
(
function
(
ARCS
,
three
)
{
var
PipeNetwork
=
ARCS
.
Component
.
create
(
function
(
jsonData
)
{
var
pipeNetwork
=
new
THREE
.
Object3D
();
var
X_OFFSET
=
0
;
// 2.428592;
var
Y_OFFSET
=
0
;
// 48.613426;
const
mmtoDeg
=
0.00000001
;
var
createTube
=
function
(
coords
,
p
,
color
,
idx
)
{
var
i
,
j
,
k
;
// the father of it all
var
root
=
new
THREE
.
Object3D
();
// computing the internal diameter of the conduct
var
diametre
=
(
p
.
DIAMETRE
*
mmtoDeg
)
||
(
100
*
mmtoDeg
)
;
for
(
j
=
0
;
j
<
coords
.
length
;
j
++
)
{
if
(
coords
[
j
].
length
>=
2
)
{
var
path
=
new
THREE
.
CurvePath
();
for
(
k
=
0
;
k
<
coords
[
j
].
length
-
1
;
k
++
)
{
path
.
add
(
new
THREE
.
LineCurve3
(
new
THREE
.
Vector3
(
coords
[
j
][
k
][
0
]
-
X_OFFSET
,
coords
[
j
][
k
][
1
]
-
Y_OFFSET
,
0
),
new
THREE
.
Vector3
(
coords
[
j
][
k
+
1
][
0
]
-
X_OFFSET
,
coords
[
j
][
k
+
1
][
1
]
-
Y_OFFSET
,
0
)
)
);
}
var
geometry
=
new
THREE
.
TubeGeometry
(
path
,
10
,
diametre
,
10
);
var
bufferedGeometry
=
new
THREE
.
BufferGeometry
();
bufferedGeometry
.
fromGeometry
(
geometry
);
root
=
new
THREE
.
Mesh
(
bufferedGeometry
,
new
THREE
.
MeshBasicMaterial
({
color
:
color
,
}));
//new THREE.MeshBasicMaterial({color : color}) );
root
.
userData
=
idx
;
}
}
return
root
;
};
var
prepareNetwork
=
function
(
gjObject
,
color
)
{
if
(
gjObject
.
type
===
"FeatureCollection"
)
{
if
(
gjObject
.
features
===
undefined
)
{
return
;
}
var
i
,
j
,
k
;
for
(
i
=
0
;
i
<
gjObject
.
features
.
length
;
i
++
)
{
var
feature
=
gjObject
.
features
[
i
];
if
(
feature
.
geometry
===
undefined
||
feature
.
properties
===
undefined
)
{
return
;
}
var
geometry
=
feature
.
geometry
;
if
(
geometry
.
type
===
"MultiLineString"
)
{
pipeNetwork
.
add
(
createTube
(
geometry
.
coordinates
,
feature
.
properties
,
color
,
i
));
}
}
}
};
prepareNetwork
(
jsonData
,
0x0000ff
);
this
.
init
=
function
()
{
this
.
emit
(
'sendSceneGraph'
,
pipeNetwork
);
};
}
},
[
'init'
],
[
'sendSceneGraph'
]
);
return
{
PipeNetwork
:
PipeNetwork
};
...
...
Please
register
or
login
to post a comment