Skip to content

Commit a7043ae

Browse files
committed
Time series with displacements when mat4 not present
1 parent 7d863bc commit a7043ae

1 file changed

Lines changed: 51 additions & 38 deletions

File tree

ressources/script.js

Lines changed: 51 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ var timeArray;
5252
var nElem, Elems, Props ; // Elements and ElementProperties
5353
var nNodes, Nodes ; // Nodes
5454
var Connectivity ; // Connectivity mapping
55-
var keyMode, iMode, Modes, Displ; // Modes data
55+
var keyMode, iMode, Modes; // Modes data
5656
var keyTS, iTS, TimeSeries; // Time series data
5757
var iPlot=0; // Switch between kind of plots iPlot=0: None, iPlot=1: Modes, iPlot=2: TimeSeries
5858
var groundLevel;
@@ -719,8 +719,9 @@ function plotSceneAtTime() {
719719
0 , 0 , 1 , 0 ,
720720
-1, 0 , 0 , 0 ,
721721
0 , 0 , 0 , 1);
722-
var Mat4=TimeSeries[keyTS][iTS].mat4
723-
// console.log('Mat4',Mat4);
722+
var Mat4 = TimeSeries[keyTS][iTS].mat4
723+
var Displ = TimeSeries[keyTS][iTS].Displ
724+
var TSHasmat4 = Mat4!=null
724725
// console.log('time',time);
725726
// console.log('time_index',time_index);
726727
if (TimeSeries[keyTS][iTS].absolute) {
@@ -744,42 +745,54 @@ function plotSceneAtTime() {
744745
if (TimeSeries[keyTS][iTS].element) {
745746
alert('NotImplementedError Time series per element');
746747
} else {
747-
for (var iElem = 0; iElem < nElem; iElem++) {
748-
var i1 = Connectivity[iElem][0]
749-
var i2 = Connectivity[iElem][1]
750-
var elements1= new Float32Array(Mat4[time_index][i1]);
751-
var elements2= new Float32Array(Mat4[time_index][i2]);
752-
var m1 = new THREE.Matrix4();
753-
var m2 = new THREE.Matrix4();
754-
m1.elements = elements1;
755-
m2.elements = elements2;
756-
// logMatrix('m1', m1);
757-
// var mm1 =m1.multiply(M1); // go from global system to THREE system
758-
// var mm2 =m2.multiply(M1); // go from global system to THREE system
759-
// logMatrix('m1', mm1);
760-
// console.log('m1',mm1);
761-
// console.log('m2',mm2);
762-
var DP1 = new THREE.Vector3().setFromMatrixPosition(m1); // In "global" coordinates not THREE
763-
var DP2 = new THREE.Vector3().setFromMatrixPosition(m2);
764-
// console.log('DP1',DP1)
765-
// console.log('DP2',DP2)
766-
//var P1 = new THREE.Vector3(-Nodes[i1][1], Nodes[i1][2], -Nodes[i1][0])
767-
//var P2 = new THREE.Vector3(-Nodes[i2][1], Nodes[i2][2], -Nodes[i2][0])
768-
// var P1 = new THREE.Vector3(-Nodes[i1][1]-DP1[1], Nodes[i1][2]+ DP1[2],-Nodes[i1][0] -DP1[0]);
769-
// var P2 = new THREE.Vector3(-Nodes[i2][1]-DP2[1], Nodes[i2][2]+ DP2[2],-Nodes[i2][0] -DP2[0]);
770-
// NOTE: Coord conversion OpenFAST to Three: x=-yOF, y=zOF, z=-xOF
771-
var P1 = new THREE.Vector3(-Nodes[i1][1]-DP1.y, Nodes[i1][2]+ DP1.z,-Nodes[i1][0] -DP1.x);
772-
var P2 = new THREE.Vector3(-Nodes[i2][1]-DP2.y, Nodes[i2][2]+ DP2.z,-Nodes[i2][0] -DP2.x);
773-
var arr = PLT.segmentOrient(P1,P2);
774-
Elems[iElem].setRotationFromMatrix(arr[0])
775-
Elems[iElem].position.set(arr[1].x, arr[1].y, arr[1].z);
776-
// console.log('P1',P1);
777-
// console.log('P2',P2);
778-
}
748+
if (TSHasmat4) {
749+
for (var iElem = 0; iElem < nElem; iElem++) {
750+
var i1 = Connectivity[iElem][0]
751+
var i2 = Connectivity[iElem][1]
752+
var elements1= new Float32Array(Mat4[time_index][i1]);
753+
var elements2= new Float32Array(Mat4[time_index][i2]);
754+
var m1 = new THREE.Matrix4();
755+
var m2 = new THREE.Matrix4();
756+
m1.elements = elements1;
757+
m2.elements = elements2;
758+
// logMatrix('m1', m1);
759+
// var mm1 =m1.multiply(M1); // go from global system to THREE system
760+
// var mm2 =m2.multiply(M1); // go from global system to THREE system
761+
// logMatrix('m1', mm1);
762+
// console.log('m1',mm1);
763+
// console.log('m2',mm2);
764+
var DP1 = new THREE.Vector3().setFromMatrixPosition(m1); // In "global" coordinates not THREE
765+
var DP2 = new THREE.Vector3().setFromMatrixPosition(m2);
766+
// console.log('DP1',DP1)
767+
// console.log('DP2',DP2)
768+
//var P1 = new THREE.Vector3(-Nodes[i1][1], Nodes[i1][2], -Nodes[i1][0])
769+
//var P2 = new THREE.Vector3(-Nodes[i2][1], Nodes[i2][2], -Nodes[i2][0])
770+
// var P1 = new THREE.Vector3(-Nodes[i1][1]-DP1[1], Nodes[i1][2]+ DP1[2],-Nodes[i1][0] -DP1[0]);
771+
// var P2 = new THREE.Vector3(-Nodes[i2][1]-DP2[1], Nodes[i2][2]+ DP2[2],-Nodes[i2][0] -DP2[0]);
772+
// NOTE: Coord conversion OpenFAST to Three: x=-yOF, y=zOF, z=-xOF
773+
var P1 = new THREE.Vector3(-Nodes[i1][1]-DP1.y, Nodes[i1][2]+ DP1.z,-Nodes[i1][0] -DP1.x);
774+
var P2 = new THREE.Vector3(-Nodes[i2][1]-DP2.y, Nodes[i2][2]+ DP2.z,-Nodes[i2][0] -DP2.x);
775+
var arr = PLT.segmentOrient(P1,P2);
776+
Elems[iElem].setRotationFromMatrix(arr[0])
777+
Elems[iElem].position.set(arr[1].x, arr[1].y, arr[1].z);
778+
// console.log('P1',P1);
779+
// console.log('P2',P2);
780+
}
781+
} else {
782+
// --- Using displacement
783+
for (var iElem = 0; iElem < nElem; iElem++) {
784+
var i1 = Connectivity[iElem][0]
785+
var i2 = Connectivity[iElem][1]
786+
var P1 = new THREE.Vector3(-Nodes[i1][1] - Displ[time_index][i1][1], Nodes[i1][2] + Displ[time_index][i1][2], -Nodes[i1][0] - Displ[time_index][i1][0])
787+
var P2 = new THREE.Vector3(-Nodes[i2][1] - Displ[time_index][i2][1], Nodes[i2][2] + Displ[time_index][i2][2], -Nodes[i2][0] - Displ[time_index][i2][0])
788+
var arr = PLT.segmentOrient(P1,P2);
789+
Elems[iElem].setRotationFromMatrix(arr[0])
790+
Elems[iElem].position.set(arr[1].x, arr[1].y, arr[1].z);
791+
}
792+
} //
779793
}
780-
}
781-
// Exception
782-
}
794+
} // Plotting Relative Motion Time Series
795+
} // --- Switch on iPlot, Mode/TimeSeries
783796
controls.update();
784797
render();
785798

0 commit comments

Comments
 (0)