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

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

?? exlightbounds.java

?? 我剛剛在學習java3d
?? JAVA
字號:
//
//  CLASS
//    ExLightBounds  -  illustrate use of light influencing bounds, and
//                      bounding leaves
//
//  LESSON
//    Add a DirectionalLight node to illuminate a scene, then adjust
//    its influencing bounds
//
//  SEE ALSO
//    ExAmbientLight
//    ExPointLight
//    ExSpotLight
//    ExLightScope
//
//  AUTHOR
//    David R. Nadeau / San Diego Supercomputer Center
//

import java.awt.*;
import java.awt.event.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class ExLightBounds
	extends Example
{
	//--------------------------------------------------------------
	//  SCENE CONTENT
	//--------------------------------------------------------------

	//
	//  Nodes (updated via menu)
	//
	private DirectionalLight light = null;
	private Bounds worldBounds = new BoundingSphere(
		new Point3d( 0.0, 0.0, 0.0 ),  // Center
		1000.0 );                      // Extent
	private Bounds smallBounds = new BoundingSphere(
		new Point3d( 0.0, 0.0, 0.0 ),  // Center
		1.0 );                         // Extent
	private Bounds tinyBounds = new BoundingSphere(
		new Point3d( 0.0, 0.0, 0.0 ),  // Center
		0.2 );                         // Extent
	private BoundingLeaf leafBounds = null;
	private TransformGroup leafTransformGroup = null;

	//
	//  Build scene
	//
	public Group buildScene( )
	{
		// Get the current bounding leaf position
		Point3f pos = (Point3f)positions[currentPosition].value;

		// Turn off the example headlight
		setHeadlightEnable( false );

		// Build the scene group
		Group scene = new Group( );

	// BEGIN EXAMPLE TOPIC
		// Create a bounding leaf we'll use or not use depending
		// upon menu selections.  Put it within a transform group
		// so that we can move the leaf about.
		leafTransformGroup = new TransformGroup( );
		leafTransformGroup.setCapability(
			TransformGroup.ALLOW_TRANSFORM_WRITE );
		Transform3D tr = new Transform3D( );
		tr.setTranslation( new Vector3f( pos ) );
		leafTransformGroup.setTransform( tr );

		leafBounds = new BoundingLeaf( worldBounds );
		leafBounds.setCapability( BoundingLeaf.ALLOW_REGION_WRITE );
		leafTransformGroup.addChild( leafBounds );
		scene.addChild( leafTransformGroup );

		// Add a directional light whose bounds we'll modify
		// Set its color and aim direction
		light = new DirectionalLight( );
		light.setEnable( true );
		light.setColor( White );
		light.setDirection( new Vector3f( 1.0f, 0.0f, -1.0f ) );
		light.setCapability(
			DirectionalLight.ALLOW_INFLUENCING_BOUNDS_WRITE );

		// Set the bounds to be either from the leaf or from
		// explicit bounds, depending upon the menu initial state
		if ( boundingLeafOnOff )
			// Use bounding leaf
			light.setInfluencingBoundingLeaf( leafBounds );
		else
			// Use bounds on the light
			light.setInfluencingBounds( worldBounds );

		// Set the scope list to include nothing initially.
		// This defaults to "universal scope" which covers
		// everything.

		scene.addChild( light );


		// Add an ambient light to dimly illuminate the rest of
		// the shapes in the scene to help illustrate that the
		// directional light is being bounded... otherwise it looks
		// like we're just removing shapes from the scene
		AmbientLight ambient = new AmbientLight( );
		ambient.setEnable( true );
		ambient.setColor( White );
		ambient.setInfluencingBounds( worldBounds );
		scene.addChild( ambient );
	// END EXAMPLE TOPIC

		// Build foreground geometry
		scene.addChild( new SphereGroup( ) );

		return scene;
	}



	//--------------------------------------------------------------
	//  USER INTERFACE
	//--------------------------------------------------------------

	//
	//  Main
	//
	public static void main( String[] args )
	{
		ExLightBounds ex = new ExLightBounds( );
		ex.initialize( args );
		ex.buildUniverse( );
		ex.showFrame( );
	}


	//  Bounds mode On/off choices
	private boolean boundingLeafOnOff = true;
	private CheckboxMenuItem boundingLeafOnOffMenu = null;

	//  Bounds menu choices
	private NameValue[] bounds = {
		new NameValue( "Tiny bounds",    tinyBounds ),
		new NameValue( "Small bounds", smallBounds ),
		new NameValue( "Big bounds",   worldBounds ),
	};
	private int currentBounds = 2;
	private CheckboxMenu boundsMenu = null;

	//  Position menu choices
	private NameValue[] positions = {
		new NameValue( "Origin", Origin ),
		new NameValue( "+X",     PlusX ),
		new NameValue( "-X",     MinusX ),
		new NameValue( "+Y",     PlusY ),
		new NameValue( "-Y",     MinusY ),
		new NameValue( "+Z",     PlusZ ),
		new NameValue( "-Z",     MinusZ ),
	};
	private int currentPosition = 0;
	private CheckboxMenu positionMenu = null;



	//
	//  Initialize the GUI (application and applet)
	//
	public void initialize( String[] args )
	{
		// Initialize the window, menubar, etc.
		super.initialize( args );
		exampleFrame.setTitle( "Java 3D Light Bounds Example" );


		//
		//  Add a menubar menu to change node parameters
		//    Use bounding leaf
		//    Bounds size -->
		//    Bounding leaf position -->
		//

		Menu m = new Menu( "DirectionalLight" );

		boundingLeafOnOffMenu = new CheckboxMenuItem( "Use bounding leaf",
			boundingLeafOnOff );
		boundingLeafOnOffMenu.addItemListener( this );
		m.add( boundingLeafOnOffMenu );

		boundsMenu = new CheckboxMenu( "Bounds size", bounds,
			currentBounds, this );
		m.add( boundsMenu );

		positionMenu = new CheckboxMenu( "Bounding leaf position", positions,
			currentPosition, this );
		if ( boundingLeafOnOff )
			// Bounding leaf on
			positionMenu.setEnabled( true );
		else
			// Bounding leaf off
			positionMenu.setEnabled( false );
		m.add( positionMenu );

		exampleMenuBar.add( m );
	}


	//
	//  Handle checkboxes and menu choices
	//
	public void checkboxChanged( CheckboxMenu menu, int check )
	{
		if ( menu == boundsMenu )
		{
			// Change the light bounds
			currentBounds = check;
			Bounds bou = (Bounds)bounds[check].value;
			if ( boundingLeafOnOff )
			{
				// Change the bounding leaf's bounds
				leafBounds.setRegion( bou );

				// Kick the light to get it to update
				// its bounds now that the leaf has
				// changed... (only necessary in the
				// Alpha release of Java3D)
				light.setInfluencingBoundingLeaf( leafBounds );
			}
			else
			{
				// Change the light's own bounds
				light.setInfluencingBounds( bou );
			}
			return;
		}
		if ( menu == positionMenu )
		{
			// Change the bounding leaf position
			currentPosition = check;
			Point3f pos = (Point3f)positions[check].value;
			Transform3D tr = new Transform3D( );
			tr.setTranslation( new Vector3f( pos ) );
			leafTransformGroup.setTransform( tr );

			// Kick the light to get it to update
			// its bounds now that the leaf has
			// changed... (only necessary in the
			// Alpha release of Java3D)
			light.setInfluencingBoundingLeaf( leafBounds );

			return;
		}

		// Handle all other checkboxes
		super.checkboxChanged( menu, check );
	}

	public void itemStateChanged( ItemEvent event )
	{
		Object src = event.getSource( );
		if ( src == boundingLeafOnOffMenu )
		{
			boundingLeafOnOff = boundingLeafOnOffMenu.getState( );
			if ( boundingLeafOnOff )
			{
				// Use the bounding leaf
				light.setInfluencingBoundingLeaf( leafBounds );

				// A bounding leaf overrides bounds,
				// but for neatness we can turn them off
				// (doesn't work in Alpha release of Java3D)
				light.setInfluencingBounds( null );
				positionMenu.setEnabled( true );
			}
			else
			{
				// Use bounds on the light itself
				Bounds bou = (Bounds)bounds[currentBounds].value;
				light.setInfluencingBoundingLeaf( null );
				light.setInfluencingBounds( bou );
				positionMenu.setEnabled( false );
			}
			return;
		}

		// Handle all other checkboxes
		super.itemStateChanged( event );
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久只精品国产| 国产精品羞羞答答xxdd| 蜜桃av一区二区三区电影| 久久99精品久久久久久| 国产成人综合在线播放| 91麻豆高清视频| 欧美一区二区三区啪啪| 国产视频一区二区三区在线观看| 成人欧美一区二区三区黑人麻豆 | 国精产品一区一区三区mba视频 | 欧美一区二区三区四区五区| 久久看人人爽人人| 一区二区三区免费网站| 美国欧美日韩国产在线播放| 成人污污视频在线观看| 欧美精品亚洲一区二区在线播放| 精品不卡在线视频| 亚洲精品国产一区二区精华液| 日韩电影在线免费看| 成人app在线观看| 91精品综合久久久久久| 国产精品美女久久久久久久 | 欧美在线制服丝袜| 日韩欧美亚洲一区二区| 亚洲欧美日韩精品久久久久| 日韩成人免费看| 国产91丝袜在线播放| 在线免费观看日本欧美| 日韩免费一区二区| 夜夜夜精品看看| 国产在线视频一区二区三区| 欧美日高清视频| 久久久国际精品| 日韩专区在线视频| 成人午夜视频福利| 精品欧美一区二区在线观看| 一区二区三区四区不卡在线 | 欧美日韩一区久久| 日本一区二区不卡视频| 青青青爽久久午夜综合久久午夜 | 亚洲欧美在线另类| 久久99国产精品久久| 在线视频国产一区| 国产精品视频yy9299一区| 免费不卡在线观看| 欧美色综合网站| 中文字幕亚洲在| 国产一区二区网址| 日韩欧美国产三级| 亚洲va国产va欧美va观看| 成人97人人超碰人人99| 国产亚洲一区二区三区| 三级欧美韩日大片在线看| 欧美午夜片在线看| 亚洲日本韩国一区| 久久久99精品久久| 亚洲成人动漫精品| 在线不卡的av| 亚洲日本在线观看| 色偷偷久久人人79超碰人人澡| 欧美高清视频在线高清观看mv色露露十八 | 成人免费视频免费观看| 石原莉奈一区二区三区在线观看| 亚洲国产日韩a在线播放| 97精品久久久午夜一区二区三区 | 毛片一区二区三区| 在线播放亚洲一区| 亚洲成av人片在线| 欧美色网一区二区| 亚洲在线成人精品| 日本精品一区二区三区四区的功能| 日本一区二区三区国色天香| 国产精品18久久久久久久网站| 精品国产乱子伦一区| 国产麻豆精品theporn| 久久久久久影视| 国产精品白丝jk黑袜喷水| 精品蜜桃在线看| 久久91精品国产91久久小草| 精品国产百合女同互慰| 久久精品国产**网站演员| 日韩欧美国产三级电影视频| 看片的网站亚洲| 久久久久一区二区三区四区| 国产宾馆实践打屁股91| 国产精品天美传媒| 成人av在线一区二区三区| 国产精品久久久久久久久久久免费看| 国产传媒欧美日韩成人| 国产精品国产a级| 91麻豆精品一区二区三区| 亚洲国产精品久久久久秋霞影院| 欧美日韩在线观看一区二区| 日韩专区欧美专区| 久久欧美中文字幕| 成人高清免费在线播放| 日韩理论在线观看| 欧美午夜电影网| 日韩电影在线看| 久久久久久久久岛国免费| 懂色av一区二区三区免费看| 国产精品青草久久| 在线观看日韩国产| 蜜乳av一区二区| 国产亚洲综合在线| 一本色道久久综合精品竹菊| 天天影视网天天综合色在线播放| 精品免费国产二区三区| 99re这里只有精品6| 亚洲一区二区三区美女| 欧美电视剧在线看免费| 不卡av在线免费观看| 亚洲自拍欧美精品| 欧美成人精品二区三区99精品| 国产精品99精品久久免费| 亚洲视频网在线直播| 欧美理论电影在线| 国产精品一线二线三线| 一区二区三区视频在线观看| 91精品综合久久久久久| 成人高清在线视频| 日韩av不卡在线观看| 国产人伦精品一区二区| 欧美羞羞免费网站| 久久91精品国产91久久小草| 亚洲欧美视频在线观看| 91精品午夜视频| 成人aa视频在线观看| 日韩精品一区第一页| 中文字幕精品三区| 欧美一区二区三区四区久久| 成人黄色777网| 日本女优在线视频一区二区 | 成人福利视频在线看| 石原莉奈在线亚洲三区| 国产精品久久久久久久久免费桃花 | 欧美日韩在线三区| 国产.精品.日韩.另类.中文.在线.播放 | 韩国女主播一区| 亚洲午夜羞羞片| 国产欧美一区二区在线观看| 制服丝袜在线91| 99热国产精品| 国产一区二区美女诱惑| 亚洲无人区一区| 国产精品国产三级国产普通话蜜臀| 欧美精品1区2区| 色成年激情久久综合| 国产成人免费视| 蜜桃av一区二区三区| 一个色在线综合| 最好看的中文字幕久久| 2021中文字幕一区亚洲| 欧美一二三在线| 欧美性猛交xxxx乱大交退制版| 粉嫩av一区二区三区粉嫩| 九色综合狠狠综合久久| 亚洲福利电影网| 亚洲日本va午夜在线影院| 国产偷v国产偷v亚洲高清| 欧美一级淫片007| 精品视频一区 二区 三区| bt欧美亚洲午夜电影天堂| 国产美女精品一区二区三区| 日韩av网站在线观看| 亚洲成人www| 亚洲综合视频在线观看| 亚洲视频一区二区在线| 国产精品免费网站在线观看| 久久品道一品道久久精品| 欧美va亚洲va在线观看蝴蝶网| 6080日韩午夜伦伦午夜伦| 欧美三日本三级三级在线播放| av一本久道久久综合久久鬼色| 国产99久久久国产精品潘金| 激情文学综合丁香| 老司机精品视频在线| 青青草原综合久久大伊人精品优势| 亚洲超碰97人人做人人爱| 亚洲二区视频在线| 亚洲午夜久久久久久久久电影网| 亚洲乱码日产精品bd | 欧美在线免费观看视频| 91原创在线视频| 91天堂素人约啪| 91国产免费看| 欧美伊人久久大香线蕉综合69 | 亚洲精品视频一区| 亚洲免费观看高清完整版在线 | 99在线精品免费| av日韩在线网站| 91免费观看视频在线| 91猫先生在线| 欧美日韩一区二区在线观看 | 亚洲欧美色综合| 一区二区三区精品| 亚洲综合在线五月| 亚洲第一福利一区| 天天综合日日夜夜精品| 蜜臀av一区二区在线免费观看|