Changes between Version 24 and Version 25 of PythonOcc/elbow


Ignore:
Timestamp:
Dec 10, 2013, 2:37:17 AM (10 years ago)
Author:
Leon Kos
Comment:

Osnutek sestava

Legend:

Unmodified
Added
Removed
Modified
  • PythonOcc/elbow

    v24 v25  
    266266  var viewer = new JSC3D.Viewer(canvas);
    267267  viewer.setParameter('SceneUrl', '/vaje/raw-attachment/wiki/PythonOcc/elbow/elbow.stl');
     268  viewer.setParameter('RenderMode', 'smooth');
     269  //viewer.setParameter('CreaseAngle', 120);
    268270  viewer.init();
    269271  viewer.update();
     
    295297Osnovno kodo lahko še dodatno opremimo z lastnostmi, ki so podrobneje opisane v
    296298[http://code.google.com/p/jsc3d/wiki/GettingStarted osnovnem primeru] jsc3d.
     299
     300== Sestavljanje, meteriali, transformacije ==
     301{{{
     302#!html
     303<script src="/vaje/raw-attachment/wiki/PythonOcc/elbow/jsc3d.min.js"></script>
     304<script src="/vaje/raw-attachment/wiki/PythonOcc/elbow/jsc3d.touch.js​"></script>
     305<script type="text/javascript">
     306function onLoad2(){
     307  var canvas = document.getElementById('cv2');
     308  var viewer = new JSC3D.Viewer(canvas);
     309  //viewer.setParameter('SceneUrl', '/vaje/raw-attachment/wiki/PythonOcc/elbow/pipe.stl');
     310  viewer.setParameter('BackgroundColor1', '#FFFFFF');
     311  viewer.setParameter('BackgroundColor2', '#383840');
     312  viewer.setParameter('InitRotationX', 30);
     313  viewer.setParameter('InitRotationY', 30);
     314  viewer.setParameter('InitRotationZ', 30);
     315
     316  viewer.init();
     317 
     318  var theScene = new JSC3D.Scene;
     319  var totalParts = 2;
     320  var numOfLoaded = 0; 
     321  var onPipeLoaded = function(scene) {
     322  var meshes = scene.getChildren();
     323    for (var i=0; i<meshes.length; i++) {
     324     material =  new JSC3D.Material();
     325     material.diffuseColor = 0x3f3f7f;
     326     meshes[i].setMaterial(material);
     327     theScene.addChild(meshes[i]);
     328    }
     329    if (++numOfLoaded == totalParts)
     330      viewer.replaceScene(theScene);
     331  };
     332
     333  var onElbowLoaded = function(scene) {
     334    var meshes = scene.getChildren();
     335    for (var i=0; i<meshes.length; i++) {
     336        material =  new JSC3D.Material();
     337        material.diffuseColor = 0xcaa618;
     338        material.transparency = 0;
     339        meshes[i].setMaterial(material);
     340        theScene.addChild(meshes[i]);
     341
     342        var xformMat = new JSC3D.Matrix3x4;
     343        var rotMat = new JSC3D.Matrix3x4;
     344        xformMat.identity();
     345        rotMat.identity();
     346        rotMat.rotateAboutZAxis(90);
     347        xformMat.multiply(rotMat);
     348        xformMat.translate(500, 0, 0);
     349
     350        myMesh = new JSC3D.Mesh();
     351        myMesh.vertexBuffer = new Array( meshes[i].vertexBuffer.length);
     352        myMesh.faceNormalBuffer = new Array( meshes[i].faceNormalBuffer.length);
     353        myMesh.indexBuffer = meshes[i].indexBuffer;
     354        // transform and rewrite vertex coordinates
     355        JSC3D.Math3D.transformVectors(xformMat, meshes[i].vertexBuffer, myMesh.vertexBuffer);
     356        // transform and rewrite face normals
     357        JSC3D.Math3D.transformVectors(rotMat, meshes[i].faceNormalBuffer, myMesh.faceNormalBuffer);
     358        myMesh.setMaterial(material);
     359        myMesh.init();
     360        theScene.addChild(myMesh);
     361    }
     362    if (++numOfLoaded == totalParts)
     363      viewer.replaceScene(theScene);
     364  };
     365                                   
     366
     367  var pipe_loader = new JSC3D.StlLoader;
     368  pipe_loader.onload = onPipeLoaded;
     369  pipe_loader.loadFromUrl('/vaje/raw-attachment/wiki/PythonOcc/elbow/pipe.stl');
     370  var elbow_loader = new JSC3D.StlLoader;
     371  elbow_loader.onload = onElbowLoaded;
     372  elbow_loader.loadFromUrl('/vaje/raw-attachment/wiki/PythonOcc/elbow/elbow.stl');
     373
     374  viewer.update();
     375}     
     376window.onload = window.onresize = function() {onLoad(); onLoad2();}       
     377</script> 
     378<canvas id="cv2" width="600" height="400"
     379  style="background:lightgrey; border: 1px solid; float:right;" ></canvas>
     380}}}