[x3d-public] Need Material/Clothes

John Carlson yottzumm at gmail.com
Mon Sep 6 04:48:18 PDT 2021


Programs like these are why JavaScript is the best programming language 
on the planet...

I'm going to look at Andreas' X3DUOM effort again.


John

On 9/6/21 6:05 AM, John Carlson wrote:
> "use strict";
>
> const fs = require('fs');
>
> const files = [ "JinLOA4.json" ];
>
> let globalScale = [ 1, 1, 1 ];
> let height = 1;
>
> function browse(obj) {
>         if (typeof obj === 'object') {
>                 for (let o in obj) {
>                         if (o === '@point') {
>                                 // console.log('point before', obj[o]);
>                                 for (let i in obj[o]) {
>                                         obj[o][i] *= globalScale[i % 3];
>                                 }
>                                 console.log('point after', obj[o]);
>                         } else if (o === '@translation') {
>                                 // console.log('translation before', 
> obj[o]);
>                                 for (let i in obj[o]) {
>                                         obj[o][i] *= globalScale[i];
>                                 }
>                                 console.log('translation after', obj[o]);
>                         } else if (o === '@center') {
>                                 // console.log('center before', obj[o]);
>                                 for (let i in obj[o]) {
>                                         obj[o][i] *= globalScale[i];
>                                 }
>                                 console.log('center after', obj[o]);
>                         } else if (o === '@name' && obj[o] === 
> 'height') {
>                                 console.log('height before', 
> obj['@value']);
>                                 console.log('global scale before:', 
> globalScale);
>                                         globalScale[1] /= 
> obj['@value'][0];
>                                 console.log('global scale after:', 
> globalScale);
>                                         obj['@value'][0] /= 
> obj['@value'][0];
>                                 console.log('height after', 
> obj['@value'][0]); // this should be 1
>                         } else if (o === '@scale') {
>                                 // change scale to no scaling
>                                 console.log('scale before', obj[o]);
>                                 console.log('global scale before', 
> globalScale);
>                                 for (let i in obj[o]) {
>                                         globalScale[i] = obj[o][i];
>                                         obj[o][i] /= globalScale[i];
>                                 }
>                                 console.log('scale after', obj[o]);
>                                 console.log('global scale after', 
> globalScale);
>                         } else if (typeof obj[o] === 'object') {
>                                 obj[o] = browse(obj[o]);
>                         }
>                 }
>         }
>         return obj;
> }
>
> for (let f in files) {
>         let str = fs.readFileSync(files[f]);
>         let obj = JSON.parse(str);
>         str = JSON.stringify(obj, null, 2);
>         // console.log(str);
>         obj = browse(obj);
>         str = JSON.stringify(obj, null, 2);
>         // console.log(str);
>         fs.writeFileSync(files[f].replace(/json/, "txt"), str);
> }
>



More information about the x3d-public mailing list