# Copyright 2012 United States Government, as represented by the Secretary of Defense, Under # Secretary of Defense (Personnel & Readiness). # # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except # in compliance with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed under the License # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express # or implied. See the License for the specific language governing permissions and limitations under # the License. --- extends: http://vwf.example.com/node3.vwf implements: - http://vwf.example.com/scale-on-move.vwf methods: createGeometry: deleteGeometry: scripts: - | this.initialize = function() { //console.info( "initialize scaleXYZ.vwf" ); } this.createGeometry = function() { if ( this.parent.ttPoints ) { var pos = []; var faces = []; var count = 0; // x positive pos.push( this.parent.ttPositions[0][0] ); pos.push( this.parent.ttPositions[0][1] ); // 0 pos.push( this.parent.ttPositions[0][2] ); pos.push( this.parent.ttPositions[8][0] ); pos.push( this.parent.ttPositions[8][1] ); // 1 pos.push( this.parent.ttPositions[8][2] ); pos.push( this.parent.ttPositions[9][0] ); pos.push( this.parent.ttPositions[9][1] ); // 2 pos.push( this.parent.ttPositions[9][2] ); pos.push( this.parent.ttPositions[10][0] ); pos.push( this.parent.ttPositions[10][1] ); // 3 pos.push( this.parent.ttPositions[10][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[11][0] ); pos.push( this.parent.ttPositions[11][1] ); // 4 pos.push( this.parent.ttPositions[11][2] ); pos.push( this.parent.ttPositions[1][0] ); pos.push( this.parent.ttPositions[1][1] ); // 5 pos.push( this.parent.ttPositions[1][2] ); pos.push( this.parent.ttPositions[13][0] ); pos.push( this.parent.ttPositions[13][1] ); // 6 pos.push( this.parent.ttPositions[13][2] ); pos.push( this.parent.ttPositions[12][0] ); pos.push( this.parent.ttPositions[12][1] ); // 7 pos.push( this.parent.ttPositions[12][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[15][0] ); pos.push( this.parent.ttPositions[15][1] ); // 8 pos.push( this.parent.ttPositions[15][2] ); pos.push( this.parent.ttPositions[16][0] ); pos.push( this.parent.ttPositions[16][1] ); // 9 pos.push( this.parent.ttPositions[16][2] ); pos.push( this.parent.ttPositions[5][0] ); pos.push( this.parent.ttPositions[5][1] ); // 10 pos.push( this.parent.ttPositions[5][2] ); pos.push( this.parent.ttPositions[14][0] ); pos.push( this.parent.ttPositions[14][1] ); // 11 pos.push( this.parent.ttPositions[14][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[17][0] ); pos.push( this.parent.ttPositions[17][1] ); // 12 pos.push( this.parent.ttPositions[17][2] ); pos.push( this.parent.ttPositions[18][0] ); pos.push( this.parent.ttPositions[18][1] ); // 13 pos.push( this.parent.ttPositions[18][2] ); pos.push( this.parent.ttPositions[19][0] ); pos.push( this.parent.ttPositions[19][1] ); // 14 pos.push( this.parent.ttPositions[19][2] ); pos.push( this.parent.ttPositions[4][0] ); pos.push( this.parent.ttPositions[4][1] ); // 15 pos.push( this.parent.ttPositions[4][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; // x negative pos.push( this.parent.ttPositions[3][0] ); pos.push( this.parent.ttPositions[3][1] ); // 16 pos.push( this.parent.ttPositions[3][2] ); pos.push( this.parent.ttPositions[20][0] ); pos.push( this.parent.ttPositions[20][1] ); // 17 pos.push( this.parent.ttPositions[20][2] ); pos.push( this.parent.ttPositions[21][0] ); pos.push( this.parent.ttPositions[21][1] ); // 18 pos.push( this.parent.ttPositions[21][2] ); pos.push( this.parent.ttPositions[22][0] ); pos.push( this.parent.ttPositions[22][1] ); // 19 pos.push( this.parent.ttPositions[22][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[23][0] ); pos.push( this.parent.ttPositions[23][1] ); // 20 pos.push( this.parent.ttPositions[23][2] ); pos.push( this.parent.ttPositions[2][0] ); pos.push( this.parent.ttPositions[2][1] ); // 21 pos.push( this.parent.ttPositions[2][2] ); pos.push( this.parent.ttPositions[25][0] ); pos.push( this.parent.ttPositions[25][1] ); // 22 pos.push( this.parent.ttPositions[25][2] ); pos.push( this.parent.ttPositions[24][0] ); pos.push( this.parent.ttPositions[24][1] ); // 23 pos.push( this.parent.ttPositions[24][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[27][0] ); pos.push( this.parent.ttPositions[27][1] ); // 24 pos.push( this.parent.ttPositions[27][2] ); pos.push( this.parent.ttPositions[26][0] ); pos.push( this.parent.ttPositions[26][1] ); // 25 pos.push( this.parent.ttPositions[26][2] ); pos.push( this.parent.ttPositions[6][0] ); pos.push( this.parent.ttPositions[6][1] ); // 26 pos.push( this.parent.ttPositions[6][2] ); pos.push( this.parent.ttPositions[28][0] ); pos.push( this.parent.ttPositions[28][1] ); // 27 pos.push( this.parent.ttPositions[28][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[31][0] ); pos.push( this.parent.ttPositions[31][1] ); // 28 pos.push( this.parent.ttPositions[31][2] ); pos.push( this.parent.ttPositions[30][0] ); pos.push( this.parent.ttPositions[30][1] ); // 29 pos.push( this.parent.ttPositions[30][2] ); pos.push( this.parent.ttPositions[29][0] ); pos.push( this.parent.ttPositions[29][1] ); // 30 pos.push( this.parent.ttPositions[29][2] ); pos.push( this.parent.ttPositions[7][0] ); pos.push( this.parent.ttPositions[7][1] ); // 31 pos.push( this.parent.ttPositions[7][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; // y positive pos.push( this.parent.ttPositions[2][0] ); pos.push( this.parent.ttPositions[2][1] ); // 32 pos.push( this.parent.ttPositions[2][2] ); pos.push( this.parent.ttPositions[37][0] ); pos.push( this.parent.ttPositions[37][1] ); // 33 pos.push( this.parent.ttPositions[37][2] ); pos.push( this.parent.ttPositions[50][0] ); pos.push( this.parent.ttPositions[50][1] ); // 34 pos.push( this.parent.ttPositions[50][2] ); pos.push( this.parent.ttPositions[25][0] ); pos.push( this.parent.ttPositions[25][1] ); // 35 pos.push( this.parent.ttPositions[25][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[35][0] ); pos.push( this.parent.ttPositions[35][1] ); // 36 pos.push( this.parent.ttPositions[35][2] ); pos.push( this.parent.ttPositions[1][0] ); pos.push( this.parent.ttPositions[1][1] ); // 37 pos.push( this.parent.ttPositions[1][2] ); pos.push( this.parent.ttPositions[13][0] ); pos.push( this.parent.ttPositions[13][1] ); // 38 pos.push( this.parent.ttPositions[13][2] ); pos.push( this.parent.ttPositions[49][0] ); pos.push( this.parent.ttPositions[49][1] ); // 39 pos.push( this.parent.ttPositions[49][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[48][0] ); pos.push( this.parent.ttPositions[48][1] ); // 40 pos.push( this.parent.ttPositions[48][2] ); pos.push( this.parent.ttPositions[16][0] ); pos.push( this.parent.ttPositions[16][1] ); // 41 pos.push( this.parent.ttPositions[16][2] ); pos.push( this.parent.ttPositions[5][0] ); pos.push( this.parent.ttPositions[5][1] ); // 42 pos.push( this.parent.ttPositions[5][2] ); pos.push( this.parent.ttPositions[43][0] ); pos.push( this.parent.ttPositions[43][1] ); // 43 pos.push( this.parent.ttPositions[43][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[28][0] ); pos.push( this.parent.ttPositions[28][1] ); // 44 pos.push( this.parent.ttPositions[28][2] ); pos.push( this.parent.ttPositions[51][0] ); pos.push( this.parent.ttPositions[51][1] ); // 45 pos.push( this.parent.ttPositions[51][2] ); pos.push( this.parent.ttPositions[45][0] ); pos.push( this.parent.ttPositions[45][1] ); // 46 pos.push( this.parent.ttPositions[45][2] ); pos.push( this.parent.ttPositions[6][0] ); pos.push( this.parent.ttPositions[6][1] ); // 47 pos.push( this.parent.ttPositions[6][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; // y negative pos.push( this.parent.ttPositions[3][0] ); pos.push( this.parent.ttPositions[3][1] ); // 48 pos.push( this.parent.ttPositions[3][2] ); pos.push( this.parent.ttPositions[22][0] ); pos.push( this.parent.ttPositions[22][1] ); // 49 pos.push( this.parent.ttPositions[22][2] ); pos.push( this.parent.ttPositions[54][0] ); pos.push( this.parent.ttPositions[54][1] ); // 50 pos.push( this.parent.ttPositions[54][2] ); pos.push( this.parent.ttPositions[39][0] ); pos.push( this.parent.ttPositions[39][1] ); // 51 pos.push( this.parent.ttPositions[39][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[33][0] ); pos.push( this.parent.ttPositions[33][1] ); // 52 pos.push( this.parent.ttPositions[33][2] ); pos.push( this.parent.ttPositions[0][0] ); pos.push( this.parent.ttPositions[0][1] ); // 53 pos.push( this.parent.ttPositions[0][2] ); pos.push( this.parent.ttPositions[10][0] ); pos.push( this.parent.ttPositions[10][1] ); // 54 pos.push( this.parent.ttPositions[10][2] ); pos.push( this.parent.ttPositions[53][0] ); pos.push( this.parent.ttPositions[53][1] ); // 55 pos.push( this.parent.ttPositions[53][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[52][0] ); pos.push( this.parent.ttPositions[52][1] ); // 56 pos.push( this.parent.ttPositions[52][2] ); pos.push( this.parent.ttPositions[19][0] ); pos.push( this.parent.ttPositions[19][1] ); // 57 pos.push( this.parent.ttPositions[19][2] ); pos.push( this.parent.ttPositions[4][0] ); pos.push( this.parent.ttPositions[4][1] ); // 58 pos.push( this.parent.ttPositions[4][2] ); pos.push( this.parent.ttPositions[41][0] ); pos.push( this.parent.ttPositions[41][1] ); // 59 pos.push( this.parent.ttPositions[41][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[31][0] ); pos.push( this.parent.ttPositions[31][1] ); // 60 pos.push( this.parent.ttPositions[31][2] ); pos.push( this.parent.ttPositions[55][0] ); pos.push( this.parent.ttPositions[55][1] ); // 61 pos.push( this.parent.ttPositions[55][2] ); pos.push( this.parent.ttPositions[47][0] ); pos.push( this.parent.ttPositions[47][1] ); // 62 pos.push( this.parent.ttPositions[47][2] ); pos.push( this.parent.ttPositions[7][0] ); pos.push( this.parent.ttPositions[7][1] ); // 63 pos.push( this.parent.ttPositions[7][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; // z positive pos.push( this.parent.ttPositions[2][0] ); pos.push( this.parent.ttPositions[2][1] ); // 64 pos.push( this.parent.ttPositions[2][2] ); pos.push( this.parent.ttPositions[37][0] ); pos.push( this.parent.ttPositions[37][1] ); // 65 pos.push( this.parent.ttPositions[37][2] ); pos.push( this.parent.ttPositions[36][0] ); pos.push( this.parent.ttPositions[36][1] ); // 66 pos.push( this.parent.ttPositions[36][2] ); pos.push( this.parent.ttPositions[23][0] ); pos.push( this.parent.ttPositions[23][1] ); // 67 pos.push( this.parent.ttPositions[23][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[35][0] ); pos.push( this.parent.ttPositions[35][1] ); // 68 pos.push( this.parent.ttPositions[35][2] ); pos.push( this.parent.ttPositions[1][0] ); pos.push( this.parent.ttPositions[1][1] ); // 69 pos.push( this.parent.ttPositions[1][2] ); pos.push( this.parent.ttPositions[11][0] ); pos.push( this.parent.ttPositions[11][1] ); // 70 pos.push( this.parent.ttPositions[11][2] ); pos.push( this.parent.ttPositions[34][0] ); pos.push( this.parent.ttPositions[34][1] ); // 71 pos.push( this.parent.ttPositions[34][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[32][0] ); pos.push( this.parent.ttPositions[32][1] ); // 72 pos.push( this.parent.ttPositions[32][2] ); pos.push( this.parent.ttPositions[8][0] ); pos.push( this.parent.ttPositions[8][1] ); // 73 pos.push( this.parent.ttPositions[8][2] ); pos.push( this.parent.ttPositions[0][0] ); pos.push( this.parent.ttPositions[0][1] ); // 74 pos.push( this.parent.ttPositions[0][2] ); pos.push( this.parent.ttPositions[33][0] ); pos.push( this.parent.ttPositions[33][1] ); // 75 pos.push( this.parent.ttPositions[33][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[20][0] ); pos.push( this.parent.ttPositions[20][1] ); // 76 pos.push( this.parent.ttPositions[20][2] ); pos.push( this.parent.ttPositions[38][0] ); pos.push( this.parent.ttPositions[38][1] ); // 77 pos.push( this.parent.ttPositions[38][2] ); pos.push( this.parent.ttPositions[39][0] ); pos.push( this.parent.ttPositions[39][1] ); // 78 pos.push( this.parent.ttPositions[39][2] ); pos.push( this.parent.ttPositions[3][0] ); pos.push( this.parent.ttPositions[3][1] ); // 79 pos.push( this.parent.ttPositions[3][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; // z negative pos.push( this.parent.ttPositions[6][0] ); pos.push( this.parent.ttPositions[6][1] ); // 80 pos.push( this.parent.ttPositions[6][2] ); pos.push( this.parent.ttPositions[45][0] ); pos.push( this.parent.ttPositions[45][1] ); // 81 pos.push( this.parent.ttPositions[45][2] ); pos.push( this.parent.ttPositions[44][0] ); pos.push( this.parent.ttPositions[44][1] ); // 82 pos.push( this.parent.ttPositions[44][2] ); pos.push( this.parent.ttPositions[26][0] ); pos.push( this.parent.ttPositions[26][1] ); // 83 pos.push( this.parent.ttPositions[26][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[43][0] ); pos.push( this.parent.ttPositions[43][1] ); // 84 pos.push( this.parent.ttPositions[43][2] ); pos.push( this.parent.ttPositions[5][0] ); pos.push( this.parent.ttPositions[5][1] ); // 85 pos.push( this.parent.ttPositions[5][2] ); pos.push( this.parent.ttPositions[14][0] ); pos.push( this.parent.ttPositions[14][1] ); // 86 pos.push( this.parent.ttPositions[14][2] ); pos.push( this.parent.ttPositions[42][0] ); pos.push( this.parent.ttPositions[42][1] ); // 87 pos.push( this.parent.ttPositions[42][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[40][0] ); pos.push( this.parent.ttPositions[40][1] ); // 88 pos.push( this.parent.ttPositions[40][2] ); pos.push( this.parent.ttPositions[17][0] ); pos.push( this.parent.ttPositions[17][1] ); // 89 pos.push( this.parent.ttPositions[17][2] ); pos.push( this.parent.ttPositions[4][0] ); pos.push( this.parent.ttPositions[4][1] ); // 90 pos.push( this.parent.ttPositions[4][2] ); pos.push( this.parent.ttPositions[41][0] ); pos.push( this.parent.ttPositions[41][1] ); // 91 pos.push( this.parent.ttPositions[41][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); count += 4; pos.push( this.parent.ttPositions[29][0] ); pos.push( this.parent.ttPositions[29][1] ); // 92 pos.push( this.parent.ttPositions[29][2] ); pos.push( this.parent.ttPositions[46][0] ); pos.push( this.parent.ttPositions[46][1] ); // 93 pos.push( this.parent.ttPositions[46][2] ); pos.push( this.parent.ttPositions[47][0] ); pos.push( this.parent.ttPositions[47][1] ); // 94 pos.push( this.parent.ttPositions[47][2] ); pos.push( this.parent.ttPositions[7][0] ); pos.push( this.parent.ttPositions[7][1] ); // 95 pos.push( this.parent.ttPositions[7][2] ); faces.push( count, count+3, count+1, count+1, count+3, count+2 ); var surface = { "extends": "http://vwf.example.com/node3.vwf", "type": "mesh/definition", "properties": { "meshDefinition": { "positions": pos, "faces": faces, "color": [ 255, 255, 255 ], }, }, }; this.children.create( "scaleSurfaces", surface ); } } this.deleteGeometry = function() { if ( this.scaleSurfaces ) { this.children.delete( this.scaleSurfaces ); } } //@ sourceURL=scaleXYZ.vwf