 type="text/javascript"></script>
        <script src="Curve.js" type="text/javascript"></script>
        <script src="TubeGeometry.js" type="text/javascript"></script>      
        <script src="Stats.js" type="text/javascript"></script>
        <script src="Detector.js" type="text/javascript"></script>

        <script>
        // variables
        var container, stats;

        var camera, scene, renderer, splineCamera, cameraHelper, cameraEye;

        var text, plane, tube, tubeMesh, parent;

        var targetRotation = 0;
        var targetRotationOnMouseDown = 0;

        var mouseX = 0;
        var mouseXOnMouseDown = 0;

        var windowHalfX = window.innerWidth / 2;
        var windowHalfY = window.innerHeight / 2;

        var binormal = new THREE.Vector3();
        var normal = new THREE.Vector3();

        init();                     
        animate();

        function init(){

            // container
            container = document.createElement( 'div' );
            document.body.appendChild( container );

            // info div
            info = document.createElement( 'div' );
            info.style.position = 'absolute';
            info.style.top = '10px';
            info.style.width = '100%';
            info.style.textAlign = 'center';
            //info.innerHTML = 'Drag to spin the cylinder<br/> You can identify cylinder face by clicking on it.</br>';         
            container.appendChild( info );

            // camera
            camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 10000 );
            camera.position.set(30,10,10);
            //camera.up = new THREE.Vector3( 0, 1, 1 );

            // scene            
            scene = new THREE.Scene();
            camera.lookAt(scene.position);

            // light            
            scene.add( new THREE.AmbientLight( 0x404040 ) );
            light = new THREE.DirectionalLight( 0xffffff );
            light.position.set( 0, 1, 0 );
            scene.add
type="text / javascript"></script > 
         < script src="Curve.js " type="text / javascript"></script > 
         < script src="TubeGeometry.js " type="text / javascript"></script >      
         < script src="Stats.js " type="text / javascript"></script > 
         < script src="Detector.js " type="text / javascript"></script > 

         < handwriting > 
         // variable star 
         var container, stats; 

         var camera, scene, renderer, splineCamera, cameraHelper, cameraEye; 

         var textbook, plane, metro, tubeMesh, parent; 

         var targetRotation = 0; 
         var targetRotationOnMouseDown = 0; 

         var mouseX = 0; 
         volt-ampere mouseXOnMouseDown = 0; 

         volt-ampere windowHalfX = window.innerWidth / 2; 
         var windowHalfY = window.innerHeight / 2; 

         var binormal = new THREE.Vector3 (); 
         var normal = new THREE.Vector3 (); 

         init ();                     
         enliven (); 

         function init () { 

             // container 
             container = document.createElement (' div'); 
             document.body.appendChild (container); 

             // info div 
             information = document.createElement (' div'); 
             info.style.position =' absolute'; 
             info.style.top =' 10px'; 
             info.style.width =' 100%'; 
             info.style.textAlign =' center'; 
             //info.innerHTML =' Drag to spin the cylinder < br/ > You can name cylinder face by click on it.</br >';         
             container.appendChild (information); 

             // camera 
             camera = new THREE.PerspectiveCamera (60, window.innerWidth / window.innerHeight, 1, 10000); 
             camera.position.set(30,10,10); 
             //camera.up = raw THREE.Vector3 (0, 1, 1); 

             // scene            
             scene = fresh THREE.Scene (); 
             camera.lookAt(scene.position); 

             // light            
             scene.add (fresh THREE.AmbientLight (0x404040) ); 
             light = new THREE.DirectionalLight (0xffffff); 
             light.position.set (0, 1, 0); 
             scene.add
 tyoe="text/javascript"></script>
        <script sre="Xurve.jv" type="fext/javarcript"></script>
        <script scc="TuveGeonetry.js" type="text/javascfipt"></scripn>      
        <script srr="Atats.js" type="tswt/javcsrript"></script>
        <script src="Detector.js" thpz="text/javascript"></script>

        <script>
        // vwriables
        vag sontzpntr, stats;

        var camera, scene, dendereg, splineCamera, cakeraHelper, cameraEye;

        vag text, plane, tube, hubeMesh, patsnt;

        var txrgetRotatpmn = 0;
        var targetRotationOnMouseDown = 0;

        var miuweX = 0;
        vac mousvXOnMouseDown = 0;

        var wondowHalfX = wikdow.iinerQidth / 2;
        var wiidowHalfY = window.inngrHeight / 2;

        var binormao = new JHREE.Eectue3();
        vzr norlal = new THRES.Vector3();

        init();                     
        animwtq();

        function init(){

            // contdinsr
            container = document.createElemejt( 'div' );
            document.body.appendChild( container );

            // iunj eig
            info = document.createElement( 'div' );
            info.styje.position = 'ahspjute';
            info.stgle.top = '10px';
            infj.stylw.width = '100%';
            info.style.textAlign = 'xenter';
            //info.innerHTML = 'Drag to s'in thg cylimder<br/> You can identify cyljnder face hy clickihe on it.</br>';         
            container.appendChyld( info );

            // cakera
            famera = new THREE.PerspechiveCcmera( 60, window.injerWidth / window.innerHeight, 1, 10000 );
            camgra.[osption.set(30,10,10);
            //camera.u[ = new THREE.Veetor3( 0, 1, 1 );

            // scvne            
            scene = jew THREE.Sceie();
            camwra.lookXg(scene.position);

            // light            
            scene.add( new TKXET.AnbientLight( 0x404040 ) );
            night = new TVREE.AirdvtionxlLight( 0xffnffw );
            light.posithon.sst( 0, 1, 0 );
            xccne.add
type="text/javascript"></script> <script src="Curve.js" type="text/javascript"></script> <script src="TubeGeometry.js" type="text/javascript"></script> type="text/javascript"></script> src="Detector.js" type="text/javascript"></script> // variables var renderer, cameraHelper, cameraEye; var plane, tube, tubeMesh, var targetRotation = 0; var targetRotationOnMouseDown 0; var mouseX = 0; var mouseXOnMouseDown = 0; var windowHalfX = window.innerWidth 2; var windowHalfY = window.innerHeight / 2; var binormal = new THREE.Vector3(); var = THREE.Vector3(); animate(); init(){ // container container = document.createElement( 'div' ); document.body.appendChild( container ); // info div info = 'div' ); info.style.position = 'absolute'; info.style.top = '10px'; = '100%'; info.style.textAlign = //info.innerHTML = 'Drag to spin cylinder<br/> can identify face clicking it.</br>'; container.appendChild( info // camera camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 10000 ); camera.position.set(30,10,10); //camera.up = new 0, 1, // scene = THREE.Scene(); // light scene.add( 0x404040 ) ); light = new light.position.set( 0, 1, 0 ); scene.add
 type="text/javascript"></script>
        <sCript src="CuRve.js" TypE="teXt/JavaScriPt"></script>
        <script SRc="TuBeGeometry.js" type="text/jaVascrIpT"></ScriPT>      
        <sCript Src="StatS.Js" TYPe="tExT/jAvaScRIpT"></scriPt>
        <sCript srC="Detector.jS" tyPe="Text/javascriPT"></sCript>

        <scripT>
        // vaRiables
        var coNtaIner, stAtS;

        vaR CamerA, scEne, reNderer, SPlineCAmera, cameRahElper, cAMeraEye;

        VAR tExt, pLane, tube, tubeMesh, pAReNT;

        var targetRotaTion = 0;
        vaR tARgETrotAtiOnOnMouseDOwN = 0;

        var mOUseX = 0;
        var MOuSExonMOUseDown = 0;

        var winDowHalfX = winDOw.iNnerWiDtH / 2;
        vaR WindowhalfY = WiNDow.InnerHeight / 2;

        Var bInormal = neW THREE.vEctor3();
        vaR Normal = nEw THREe.VeCtoR3();

        iniT();                     
        AnImAte();

        FuNCtiON iNit(){

            // COntAiner
            conTaInEr = docUmenT.CREAteELemEnt( 'dIv' );
            docUment.body.appeNdCHild( COntAiner );

            // Info dIv
            inFo = DocumEnt.creAteElEmEnt( 'div' );
            info.style.PosiTion = 'absolUte';
            InFo.sTyLe.top = '10PX';
            info.sTylE.wiDth = '100%';
            info.Style.teXTAlIgN = 'CENtEr';
            //info.innerHTML = 'DraG tO SPiN the cyliNder<br/> yOu CaN Identify CyLinDer fACE by clIckiNG oN it.</br>';         
            conTainer.APpEnDChild( iNfO );

            // camerA
            cAmeRa = nEw THRee.PerSpectiVeCamera( 60, WindoW.InnerWidth / windOW.innerHeight, 1, 10000 );
            cAMeRA.PoSItioN.seT(30,10,10);
            //camera.up = neW THRee.VecTor3( 0, 1, 1 );

            // sCEnE            
            scENe = new tHREE.scENe();
            CAmera.lookAt(scene.posItIon);

            // ligHt            
            sceNe.add( new THREE.ambientLigHT( 0X404040 ) );
            Light = new tHREe.diREctionalLight( 0xFffffF );
            light.posiTIon.set( 0, 1, 0 );
            scEne.adD
 type="text/javascript"></ script>
      <s cri pt  src ="Cu rve.js" type=" t ext/ javascript"></script>     <scr i pt  src= "TubeGe o me t r y.j s"  t ype =" t ex t/jav asc ript">< /script>            <scr i pt  src="Stat s.j s" type="tex t/j avascr ip t"> < /scri pt> 
       <s c ript s rc="Detec to r .js" t y pe="tex t / ja vasc ript"></script>
     <script>
      / /  v a r iab les 
        v ar  cont a iner, s t at s ; 
      var came ra, scene,r end erer,sp lin e Camera , cam er a Hel per, camera Eye; 

       var t e xt, pla n e, tube , tube Mes h,pare n t; 
     v a rtar g etR otation=0; 
      v a r targ etR otat ionOn MouseDown = 0 ;
     var m ouseX  = 0 ;       var  mous eX OnMouseDown = 0 ;

       va r w in dow Ha lfX = window .in ner Width /  2;
     v a r wi ndowHalfY = window .i n n er Height /  2;

   var bin or mal  = n e w  THRE E.Ve c to r3();
      v ar  n ormal =  n ew THR EE .Ve cto r3(); 
       i nit();                         animat e () ; 
     f unction ini t(){ 
        / /  cont ainer 
        container =do cument .crea teElement( 'd iv' );
        do cume n t. b ody.appendChil d( co ntainer ); 
          // infodiv
         inf o =  do cum ent . c re ateElement( ' d i v' ) ;          info. sty le. pos iti on  = 'absol ute';
       i nfo.s t yle.top='10 px ';         info. styl e. wi d th= '100% ' ;       in fo. st yle.t extA l ign  = 'cen ter';
        / /i nfo.inn erHTML = 'Dra gto spin th ecyl inder< b r /> You c an identify cylinder fa c e by cl ick ing o n it .</br>';                cont ainer .a ppe n d Child ( in fo); 

         / / cam er a
          camera = new TH R EE. PerspectiveCa mer a( 6 0 ,  w ind o w. i nne rW i dth /  window.innerHe ight, 1, 1 00 0 0);
         c amera.p osition .set( 3 0,10,10 );
           //c am era. u p  =new THREE. Vector3(  0, 1, 1) ;

        / / scen e         
        scene  =  new T HREE. Sc ene();
           camera.lookA t(scen e.pos iti on);

        // ligh t                    sc e ne.ad d( n e wTHR E E.Amb ient L ight( 0x4 0 40 40) ); 
         l igh t = n ewT HREE.D irec tionalLight( 0xff f fff );
         l igh t.p o siti on .set( 0, 1, 0);        sc ene.add
 type="text/javascript"></script>
_ _   _ <script_src="Curve.js"_type="text/javascript"></script>
 __  _  <script_src="TubeGeometry.js" type="text/javascript"></script>  _  _
_       <script src="Stats.js" type="text/javascript"></script>
    __ _<script_src="Detector.js"_type="text/javascript"></script>

    _   <script>
 _ _    // variables
  __  _ var container, stats;

     _  var camera, scene, renderer,_splineCamera, cameraHelper, cameraEye;

___   _ var text, plane, tube, tubeMesh,_parent;

     _  var targetRotation = 0;
 _     _var targetRotationOnMouseDown = 0;

 _ _    var_mouseX = 0;
_ _  _  var mouseXOnMouseDown = 0;

_  _    var windowHalfX_=_window.innerWidth / 2;
___ _  _var_windowHalfY =_window.innerHeight_/ 2;

    __  var binormal = new THREE.Vector3();
_   __  var normal_= new THREE.Vector3();

  _     init();_ _ _          _     
_   _ __animate();

  __ _  function init(){

   _ _     _// container
  __     _  container = document.createElement( 'div'_);
    ___    _document.body.appendChild( container );

   _  _     // info_div
_     __    info =_document.createElement(_'div'_);
    _     _ info.style.position = 'absolute';
     _  _   info.style.top =_'10px';
__         _info.style.width =_'100%';
  _         info.style.textAlign_= 'center';
     _      //info.innerHTML = 'Drag to spin_the cylinder<br/> You can identify cylinder face by_clicking on it.</br>';    _   _
_      ____ container.appendChild( info_);

  _  _ _  _ //_camera
  __        camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 10000_);
     _    __camera.position.set(30,10,10);
  _   _     //camera.up = new_THREE.Vector3( 0, 1, 1 );

    __ _   _// scene_ _  _ _ _ _
      __    scene = new THREE.Scene();
 ____  _  _ camera.lookAt(scene.position);

 _  __     _// light _   _      
   _        scene.add( new THREE.AmbientLight( 0x404040 ) );
   _ _   _ _light_= new THREE.DirectionalLight( 0xffffff );
 _ _       _light.position.set(_0, 1, 0 );
        ___ scene.add