亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lathe.wrl

?? 門可以用鼠標電機打開或者關閉
?? WRL
字號:


NavigationInfo {
  type ["EXAMINE" "ANY"]
}

Viewpoint {
  position 0 12 16
  orientation	-1 0 0 0.7854
  description "Front"
}

DirectionalLight {
  intensity 0.7
  direction 1 -1 -1
}


# The Tool, moveable by the plane sensor


Transform {
  children [
    DEF TOOLSENSOR PlaneSensor {
      maxPosition  100  100
      minPosition -100 -100
      autoOffset FALSE
    }
    DEF TOOLTRANS Transform {
      children [
	Transform {
	  children Shape {
	    appearance Appearance {
	      material Material {
		diffuseColor      0.2 0.2 1
		specularColor     1 1 1
		shininess         0.8
	      }
	    }
		#Cylinder    for tool
	    geometry Cylinder {
	      radius 0.2
	      height 4
	    }
	  }
	  translation 0 -2.4 0
	}
	
	Transform {
	  children Shape {
	    appearance Appearance {
	      material Material {
		diffuseColor    0.5 0.5 1	
		specularColor   0.8 0.8 1
		shininess       0.9
	      }
	    }

	  #  for tool
	      geometry Cone {
	      bottomRadius 0.2
	      height 0.4
	    }

	  }
	  translation 0 -0.2 0
	}
        DEF SPARKTIMER TimeSensor {
	  cycleInterval 0.3
	}
	DEF SPARKSWITCH Switch {
	  whichChoice -1
	  choice Shape {
	    appearance	Appearance {
	      material	Material {
		emissiveColor 1 1 0.5
	      }
	    }
	    geometry DEF SPARKS IndexedLineSet {
	      coord  DEF SPARKCOORD Coordinate {
		point []
	      }
	      coordIndex []
	      color DEF SPARKCOLOR Color {
		color []
	      }
	    }
	  }
	}
	Sound {
	  minFront 10
	  maxFront 100
	  minBack 10
	  maxBack 100
	  source DEF TOOLSOUND AudioClip {
	    url "tool.wav"
	    loop TRUE
	    startTime 0
	    stopTime 1
	  }
	}
      ]
    }
  ]
  rotation 1 0 0 -1.57
}


# The rotating stock, constructed by the script
 part used for manufacturing



DEF ROTTRANS Transform {
  children	[
    DEF ROTTOUCH TouchSensor {
    }
    Shape {
      appearance	Appearance {
	material	Material {
	  diffuseColor  0.5 0.5 1
	  shininess     0.9
	  specularColor 0.5 0.5 1
	}
      }

    geometry DEF SHAPE Extrusion {
	beginCap       FALSE
	endCap         FALSE
	convex         FALSE
	ccw            FALSE

	creaseAngle    1


        crossSection   [-1 -7, 1 -7, 1 7, -1 7]
        spine          [0 0 1, 0 -0.65 0.77, 0 -0.99 0.17, 0 -0.87 -0.5,
                        0 -0.35 -0.94, 0 0.34 -0.94, 0 0.87 -0.5, 
                        0 0.98 0.17, 0 0.64 0.77, 0 0 1]


     
        }
      
    }
    Sound {
      minFront 10
      maxFront 100
      minBack 10
      maxBack 100
      source DEF LATHESOUND AudioClip {
	#url "lathe.wav"
	loop TRUE
      }
    }
  ]
}

DEF ROTTIME TimeSensor {
  cycleInterval    0.5	   #time control
  loop             TRUE
}

DEF ROTINT OrientationInterpolator {
  key        [0, 0.25, 0.5, 0.75, 1]
  keyValue   [-1 0 0 0, -1 0 0 1.57, -1 0 0 3.14, -1 0 0 4.71, -1 0 0 0]
}



# The floating panel (reset button)



#This is the sensor to measure the viewers position and 
#viewing direction

DEF PANELPROX ProximitySensor {
  size 100 100 100
}

#This transform follows the viewer, so it appears to be
#static

DEF PANELTRANS Transform {
  children [
    ########### RESET ##############
    Transform {
      children [
	DEF RESETBUTTON TouchSensor {
	}
	DEF BUTTON Shape {
	  appearance Appearance {
	    material Material {
	      diffuseColor 0 0 .8
	      emissiveColor 0 0 .8
	    }
	  }
	  geometry Box {
	    size 2 0.8 0.2
	  }
	}
	Transform {
	  children Shape {
	    appearance Appearance {
	      material Material {
		diffuseColor  1 0.8 0
		emissiveColor 1 0.8 0
	      }
	    }
	    geometry Text {
	      string "RESET"
	      maxExtent 1.9
	      fontStyle DEF BUTTONFONT FontStyle {
		family        "SANS"
		size         0.5
		justify      ["MIDDLE", "MIDDLE"]
	      }
	    }
	  }
	  translation 0 0 0.11
	}
      ]
      translation -3 -3 -10
    }
  ]
}

# The Script, to construct the piece, and handle interaction

DEF SCRIPT Script {
  field         SFInt32      linSteps         42
  field         SFInt32      rotSteps         9
  field         SFFloat      radius           1	  
  field         SFFloat      width           10
  field         SFInt32      sparks           20

  eventOut      MFVec2f      crossSection
  eventOut      MFVec3f      spine

  eventOut      MFVec3f      sparkCoord
  eventOut      MFInt32      sparkIndex
  eventOut      MFColor      sparkColor
  eventOut      SFInt32      sparkChoice
  eventOut      SFTime       sparkTimerStart
  eventOut      SFTime       toolSoundStart
  eventOut      SFTime       toolSoundStop
  eventIn       SFBool       sparkActive
  eventIn       SFFloat      sparkFraction

  eventIn       SFVec3f      set_toolPosition
  eventIn       SFBool       set_toolActive
  eventOut      SFVec3f      toolPosition_changed
  eventOut      SFVec3f      toolOffset_changed
  field         SFVec3f      toolPosition            0 -3 0

  eventIn       SFTime       rotTouched
  eventOut      SFBool       doRotate
  eventOut      SFFloat      rotFraction
  eventOut      SFTime       startSound
  eventOut      SFTime       stopSound

  eventIn       SFTime       reset

  field         SFVec2f      last             0 3
  field         SFTime       cutTime          0
  url	"vrmlscript:
        function randomSparks() {
          j = 0;
          for (i = 1; i < sparks; i++) {
            sparkCoord[i] = new SFVec3f(
              Math.random() - 0.5, 
              Math.random() - 0.5,
              1 + Math.random()
             );
          }
        }

	function initialize() {
	  spine = new MFVec3f();
	  crossSection = new MFVec2f();

          //Create rotational Spine
	  step = 2 * Math.PI / rotSteps;
	  p = Math.PI / 2;
	  for (i = 0; i < rotSteps; i++) {
	    spine[i] = new SFVec3f(0, Math.cos(p), Math.sin(p));
	    p += step;
	  }
          spine[rotSteps] = spine[0];

          //Create CrossSection
          crossSection[0] = new SFVec2f(-0.999, -0.5 * width);
          for (i = 0; i < linSteps + 1; i++) {
	    crossSection[i+1] = new SFVec2f( radius,
              (i * width / linSteps) - (0.5 * width));
	  }
          crossSection[linSteps+2] = new SFVec2f(-0.999, 0.5 * width);

          //Create Sparks
          sparkCoord = new MFVec3f();
          sparkIndex = new MFInt32();
          sparkColor = new MFColor();
          sparkCoord[0] = new SFVec3f(0, 0, 0);
          sparkColor[0] = new SFColor(1, 1, 0.5);
          for (i = 1, j = 0; i < sparks; i++) {
            sparkIndex[j++] = 0;
            sparkIndex[j++] = i;
            sparkIndex[j++] = -1;
            sparkColor[i] = new SFColor(
             0.3+0.6*Math.random(), 
             0.2+0.6*Math.random(), 
             0);
          }
          randomSparks();

          //Init last
          last.x = Math.round(linSteps / 2);

          toolPosition_changed = toolOffset_changed = toolPosition =
            new SFVec3f(0, -3, 0);

          doRotate = TRUE;
        }

        function set_toolActive(active, time) {
	  if (!active) toolOffset_changed = toolPosition;
        }

        function set_toolPosition(pos, time) {
          toolPosition = pos;
          if (toolPosition.x > 7) toolPosition.x = 7; else
	  if (toolPosition.x < -7) toolPosition.x = -7;
          if (toolPosition.y > -.5) toolPosition.y = -.5; else
	  if (toolPosition.y < -6) toolPosition.y = -6;

          center = Math.round( 0.5 * linSteps + 
            toolPosition.x * linSteps / width) + 1;
          dist = -toolPosition.y;
          val = crossSection[center];
          cut = FALSE;
          if (doRotate) {
            if (Math.abs(center - last.x) <= 1) {
              if (val.x + 1 > dist) {
                val.x = dist - 1;
                crossSection[center] = val;
                cut = TRUE;
              }
            } else {
              if (center < last.x) {
                start = center;
                end = last.x - 1;
                d = dist;
                deltaD = (last.y - dist) / (end - start);
              } else {
                start = last.x + 1;
                end = center;
                d = last.y;
                deltaD = (dist - last.y) / (end - start);
              }
              for ( i = start; i <= end; i++ ) {
                val = crossSection[i];
                if (val.x + 1 > d) {
                  val.x = d - 1;
                  crossSection[i] = val;
                  cut = TRUE;
                }
                d += deltaD;
              }
            }
          } else {
            if (val.x + 1 > dist) toolPosition.y = -(val.x + 1);
          }
          last.x = center;
          last.y = dist;
          toolPosition_changed = toolPosition;
          if (cut) {
            randomSparks();
            sparkTimerStart = time;
	    toolSoundStart = time;
	    cutTime = time;
            sparkChoice = 0;
          }
	}

        function sparkActive(active, time)
        {
          if (!active && time - cutTime >= 0.3) {
	    sparkChoice = -1;
	    toolSoundStop = time;
	  }
        }

        function sparkFraction(active)
        {
          randomSparks();
        }

        function rotTouched(time)
        {
          rotFraction = 0;
          doRotate = !doRotate;
          if (doRotate) startSound = time; else stopSound = time;
        }

        function reset(time)
        {
          initialize();
          startSound = time;
        }

"
}

ROUTE SCRIPT.crossSection TO SHAPE.set_crossSection
ROUTE SCRIPT.spine TO SHAPE.set_spine

ROUTE SCRIPT.sparkCoord TO SPARKCOORD.set_point
ROUTE SCRIPT.sparkIndex TO SPARKS.set_coordIndex
ROUTE SCRIPT.sparkColor TO SPARKCOLOR.set_color
ROUTE SCRIPT.sparkChoice TO SPARKSWITCH.set_whichChoice
ROUTE SCRIPT.sparkTimerStart TO SPARKTIMER.set_stopTime
ROUTE SCRIPT.sparkTimerStart TO SPARKTIMER.set_startTime
ROUTE SPARKTIMER.isActive TO SCRIPT.sparkActive
ROUTE SPARKTIMER.fraction_changed TO SCRIPT.sparkFraction

ROUTE SCRIPT.toolSoundStart TO TOOLSOUND.set_startTime
ROUTE SCRIPT.toolSoundStop  TO TOOLSOUND.set_stopTime

ROUTE TOOLSENSOR.translation_changed TO SCRIPT.set_toolPosition
ROUTE TOOLSENSOR.isActive TO SCRIPT.set_toolActive
ROUTE SCRIPT.toolPosition_changed TO TOOLTRANS.set_translation
ROUTE SCRIPT.toolOffset_changed TO TOOLSENSOR.set_offset

ROUTE ROTTIME.fraction_changed TO ROTINT.set_fraction
ROUTE ROTINT.value_changed TO ROTTRANS.set_rotation
ROUTE SCRIPT.rotFraction TO ROTINT.set_fraction

ROUTE ROTTOUCH.touchTime TO SCRIPT.rotTouched
ROUTE SCRIPT.doRotate TO ROTTIME.set_enabled
ROUTE SCRIPT.startSound TO LATHESOUND.set_startTime
ROUTE SCRIPT.stopSound  TO LATHESOUND.set_stopTime

ROUTE RESETBUTTON.touchTime TO SCRIPT.reset

ROUTE PANELPROX.position_changed TO PANELTRANS.set_translation
ROUTE PANELPROX.orientation_changed TO PANELTRANS.set_rotation

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女在线视频| 日本不卡不码高清免费观看| 亚洲一二三四区| 老司机精品视频线观看86| 成人免费高清在线观看| 91精品国产综合久久精品麻豆 | 日本一区二区三区免费乱视频| 亚洲欧美成aⅴ人在线观看| 久久成人精品无人区| 在线看国产一区二区| 国产人成一区二区三区影院| 久久精品国产精品亚洲红杏 | 国产精品视频观看| 精品在线播放午夜| 555www色欧美视频| 亚洲午夜一区二区| 91一区二区三区在线观看| 久久久久国色av免费看影院| 美洲天堂一区二卡三卡四卡视频 | 国产乱色国产精品免费视频| 在线播放亚洲一区| 亚洲精品国产a| 色综合视频一区二区三区高清| 久久久久亚洲蜜桃| 国产老女人精品毛片久久| 日韩一区二区三区在线| 五月天欧美精品| 欧美日韩电影在线播放| 亚洲一区二区三区四区在线观看| 91丨九色丨尤物| 国产精品丝袜久久久久久app| 国产毛片精品一区| 国产日韩影视精品| 成人午夜精品一区二区三区| 久久久国产一区二区三区四区小说| 久久91精品国产91久久小草| xnxx国产精品| 国产成人免费网站| 中文字幕av资源一区| 国产一区999| 中文字幕免费不卡在线| 成人av免费在线播放| 亚洲天堂2016| 欧美综合欧美视频| 日韩黄色片在线观看| 日韩欧美资源站| 激情图区综合网| 国产亚洲精品7777| 99精品在线观看视频| 亚洲综合色在线| 欧美一卡二卡三卡四卡| 国产原创一区二区| 亚洲日本在线天堂| 欧美卡1卡2卡| 国产成人免费在线视频| 亚洲免费高清视频在线| 欧美人妖巨大在线| 国产成人综合在线| 亚洲一区二区视频在线| 日韩视频在线一区二区| 国产福利精品一区| 亚洲成人动漫精品| 久久久国产一区二区三区四区小说| 在线观看亚洲成人| 看电视剧不卡顿的网站| 中文字幕国产一区二区| 欧美日韩国产首页在线观看| 国产专区综合网| 一区二区三区.www| 国产亚洲欧美日韩在线一区| 91久久一区二区| 久久se这里有精品| 亚洲一区二区三区激情| 久久久久久久综合狠狠综合| 在线观看91精品国产入口| 久久99国产精品尤物| 亚洲综合区在线| 久久蜜桃av一区精品变态类天堂 | 国产精品一区二区视频| 亚洲免费资源在线播放| 精品国产三级电影在线观看| 色国产精品一区在线观看| 久久精工是国产品牌吗| 一区二区三区四区不卡在线| 2021国产精品久久精品| 欧美日韩一区不卡| 91污在线观看| 国产成人综合在线| 美国一区二区三区在线播放| 一区二区三区美女视频| 国产精品欧美久久久久无广告| 日韩欧美一二三四区| 91福利资源站| 91视频xxxx| 懂色av一区二区在线播放| 日本美女一区二区| 亚洲在线中文字幕| 亚洲人一二三区| 中国色在线观看另类| 国产三级欧美三级| 久久综合av免费| 日韩理论片网站| 精品国精品自拍自在线| 欧美一区二区久久久| 欧美日韩五月天| 欧美亚州韩日在线看免费版国语版| 99re视频精品| 99综合电影在线视频| 国产不卡在线视频| 国产成人综合亚洲91猫咪| 黄色日韩网站视频| 久久国产人妖系列| 久久se精品一区精品二区| 久久国产精品72免费观看| 青青草97国产精品免费观看无弹窗版 | 欧美高清在线视频| 国产日韩欧美麻豆| 久久美女艺术照精彩视频福利播放 | 国产成人精品影视| 福利电影一区二区三区| 国产成+人+日韩+欧美+亚洲| 国产成人av电影在线| 丁香天五香天堂综合| 成人美女视频在线观看18| 成人高清视频免费观看| 91同城在线观看| 色乱码一区二区三区88| 在线精品亚洲一区二区不卡| 欧美喷潮久久久xxxxx| 欧美一区二区三区小说| 日韩精品一区二区三区蜜臀| 欧美变态tickling挠脚心| 欧美大胆一级视频| 国产日韩欧美激情| 最新热久久免费视频| 亚洲午夜免费电影| 日韩国产精品大片| 国产一区二区在线视频| 成人免费av在线| 欧美性做爰猛烈叫床潮| 日韩一级片网站| 国产精品乱码久久久久久| 亚洲一区二区视频| 极品销魂美女一区二区三区| 97精品国产97久久久久久久久久久久| 色偷偷一区二区三区| 欧美一区二区视频免费观看| 久久久精品黄色| 亚洲一区二区在线观看视频| 国产在线麻豆精品观看| 99re成人在线| 日韩精品一区在线| 一区在线观看视频| 日韩二区三区四区| 99视频精品在线| 日韩三级精品电影久久久| 国产精品成人在线观看| 日本女人一区二区三区| www.色精品| 91精品国产91综合久久蜜臀| 国产精品女同一区二区三区| 日本伊人午夜精品| 成人高清视频在线| 欧美大片在线观看一区| 亚洲日本韩国一区| 国产精品一区二区久久不卡| 欧美日韩国产综合草草| 中文字幕欧美一| 韩国视频一区二区| 欧美三级电影一区| 亚洲欧美在线视频观看| 极品销魂美女一区二区三区| 欧美日韩国产首页| 一区二区在线观看视频| 国产成人一区在线| 日韩精品中文字幕在线不卡尤物| 有码一区二区三区| 国产91丝袜在线播放九色| 91精品国产手机| 亚洲夂夂婷婷色拍ww47 | 色视频成人在线观看免| 亚洲精品在线观| 蜜桃一区二区三区在线| 欧美性视频一区二区三区| 亚洲人精品午夜| 成人av动漫在线| 国产精品视频第一区| 国产盗摄一区二区三区| 欧美精品一区二区三区很污很色的 | 中文字幕亚洲综合久久菠萝蜜| 国产最新精品免费| 日韩视频在线永久播放| 美腿丝袜亚洲三区| 91精品国产综合久久精品麻豆 | 亚洲日本中文字幕区| av在线不卡免费看| 国产精品国产三级国产aⅴ原创| 国产福利一区二区三区| 欧美经典一区二区| 国产91精品一区二区麻豆亚洲|