VRML

1.Общие сведения(структура программы, простейший пример)
2
.Прототипы
3.Группирование объектов
4.Динамические объекты
5.Усложненный пример
6.Основные типы данных
7.Основные узлы и работа с ними

Основные узлы и работа с ними


Appearance
Box
Color
ColorInterpolator
Cone
CoordinateInterpolator
Cylinder
FontStyle
Group
ImageTexture
Material
OrientationInterpolator
PlaneSensor
PositionInterpolator
ProximitySensor
Shape
Sphere
SphereSensor
Text
TimeSensor
TouchSensor
Transform
Viewpoint

 

   Принципы работы с узлами

  Узел может содержать защищенные поля (field), поля с возможностью доступа (exposedField), входящие события (eventIn), выходящие события(eventOut). Каждая из перечисленных сущностей имеет строго определенный тип (все основные типы перечислены в предыдущем разделе). На этапе обработки происходит связывание компонентов узлов по следующим правилам:

   - связывать можно только компоненты одинакового типа,

   - выходящие события можно связывать с открытыми полями и входящими событиями,

   - недопустимо связывать выходящее событие с выходящим событием,

   - недопустимо связывать входящее событие с входящим событием,

   - недопустимо производить связи с защищенными полями

Appearance
Appearance { 
	exposedField	SFNode	material		
	exposedField	SFNode	texture			
	exposedField	SFNode	textureTransform	
}

  Узел определяет визуальное представление геометрии

Box
Box { 
	field		SFVec3f	size			# (0,?)
}

  Узел задает параллелепипед.

Color
Color { 
	exposedField	MFColor	color[]				# [0,1]
}

  Этот узел определяет набор RGB цветов, используемых в других узлах.


ColorInterpolator
ColorInterpolator { 
	eventIn	SFFloat 	set_fraction			# (-?,?)
	exposedField	MFFloat	key[]			# (-?,?)
	exposedField	MFColor	keyValue[]		# [0,1]
	eventOut	SFColor	value_changed
}

  Этот узел позволяет линейно интерполировать цвет геометрии

Cone
Cone { 
	field		SFFloat	bottomRadius 		# (0,?)
	field		SFFloat	height			# (0,?)
	field		SFBool	side			
	field		SFBool	bottom			
}

  Этот узел описывает конус

CoordinateInterpolator 
CoordinateInterpolator { 
	eventIn      	SFFloat 	set_fraction        		# (-?,?)
  	exposedField 	MFFloat 	key[]    			# (-?,?)
  	exposedField 	MFVec3f 	keyValue[]    			# (-?,?)
  	eventOut     	MFVec3f 	value_changed
}

  Этот узел позволяет линейно интерполировать координаты геометрии.

Cylinder
Cylinder { 
  	field    		SFBool    	bottom  	
  	field    		SFFloat   	height  		# (0,?)
  	field    		SFFloat   	radius  		# (0,?)
  	field    		SFBool    	side		
  	field    		SFBool    	top		
}

  Этот узел описывает цилиндр.


FontStyle
FontStyle { 
  	field 		MFString 	family       		
  	field 		SFBool   	horizontal   		
  	field 		MFString 	justify      		
  	field 		SFString 	language     		
  	field 		SFBool   	leftToRight  		
  	field 		SFFloat  	size         		# (0,?)
  	field 		SFFloat  	spacing      		# [0,?)
  	field 		SFString 	style        		
  	field 		SFBool   	topToBottom  		
}

  Этот узел позволяет задать стиль шрифта.

Group
Group { 
  	eventIn      	MFNode  	addChildren
  	eventIn      	MFNode  	removeChildren
  	exposedField 	MFNode  	children[]
  	field        	SFVec3f 	bboxCenter    		# (-?,?)
  	field        	SFVec3f 	bboxSize      		# (0,?) или -1,-1,-1
}

  Этот узел позволяет группировать узлы в группы.


ImageTexture
ImageTexture { 
  	exposedField 	MFString 	url[]
  	field        	SFBool   	repeatS 		
  	field        	SFBool   	repeatT 		
}

  Этот узел описывает текстуру.

Material
Material { 
	exposedField 	SFFloat 	ambientIntensity  	# [0,1]
	exposedField 	SFColor 	diffuseColor      	# [0,1]
  	exposedField 	SFColor 	emissiveColor     	# [0,1]
  	exposedField 	SFFloat 	shininess         		# [0,1]
  	exposedField 	SFColor 	specularColor     	# [0,1]
  	exposedField 	SFFloat 	transparency      	# [0,1]
}

  Этот узел позволяет описать свойства материала.

OrientationInterpolator
OrientationInterpolator { 
	eventIn      	SFFloat    	set_fraction      		# (-?,?)
  	exposedField 	MFFloat   	key[]  				# (-?,?)
  	exposedField 	MFRotation 	keyValue[]  			# (-?,?)
  	eventOut     	SFRotation 	value_changed
}

  Позволяет линейно интерполировать ориентацию/поворот геометрии в пространстве.

PlaneSensor
PlaneSensor { 
  	exposedField 	SFBool  	autoOffset          	
  	exposedField 	SFBool  	enabled             	
  	exposedField 	SFVec2f 	maxPosition         	# (-?,?)
  	exposedField 	SFVec2f 	minPosition         	# (-?,?)
  	exposedField 	SFVec3f 	offset              		# (-?,?)
  	eventOut     	SFBool  	isActive
  	eventOut     	SFVec3f 	trackPoint_changed
  	eventOut     	SFVec3f 	translation_changed
}

  Этот узел может быть вставлен в любую геометрию и позволяет пользователю передвигать при помощи указателя эту геометрию относительно плоскости Z.

PositionInterpolator
PositionInterpolator { 
  	eventIn      	SFFloat 	set_fraction        		# (-?,?)
  	exposedField 	MFFloat 	key[]    			# (-?,?)
  	exposedField 	MFVec3f 	keyValue[]    			# (-?,?)
  	eventOut     	SFVec3f 	value_changed
}


  Позволяет линейно интерполировать позицию геометрии в пространстве.

  ProximitySensor
ProximitySensor { 
  exposedField 	SFVec3f    	center      		# (-?,?)
  exposedField 	SFVec3f    	size        		# [0, ?)
  exposedField 	SFBool     	enabled     		
 eventOut     		SFBool     	isActive
 eventOut     		SFVec3f    	position_changed
  eventOut     		SFRotation 	orientation_changed
 eventOut     		SFTime     	enterTime
 eventOut     		SFTime     	exitTime
}

   Реагирует на приближение/удаление пользователя к объекту.

Shape
Shape { 
	exposedField 	SFNode 	appearance 		
	exposedField 	SFNode 	geometry   		
}

  Этот узел позволяет связать геометрию с узлами, отвечающими за визуальное представление форм.


Sphere
Sphere { 
 	field 		SFFloat 	radius  			# (0,?)
}

  Этот узел позволяет задать сферу.

SphereSensor
SphereSensor { 
	exposedField 	SFBool     	autoOffset        	
	exposedField 	SFBool     	enabled           		
	exposedField 	SFRotation 	offset            		# [-1,1], (-?,?)
	eventOut     	SFBool     	isActive
 	eventOut     	SFRotation 	rotation_changed
	eventOut     	SFVec3f    	trackPoint_changed
}

  Этот узел может быть вставлен в любую геометрию и позволяет пользователю вращать при помощи указателя эту геометрию относительно ее центра.

SphereSensor
SphereSensor { 
	exposedField 	SFBool     	autoOffset        	
	exposedField 	SFBool     	enabled           		
  	exposedField 	SFRotation 	offset            		# [-1,1], (-?,?)
 	eventOut     	SFBool     	isActive
 	eventOut     	SFRotation 	rotation_changed
 	eventOut     	SFVec3f    	trackPoint_changed
}

  Этот узел может быть вставлен в любую геометрию и позволяет пользователю вращать при помощи указателя эту геометрию относительно ее центра.


TimeSensor
TimeSensor { 
	exposedField 	SFTime   	cycleInterval 		# (0,?)
	exposedField 	SFBool   	enabled       		
 	exposedField 	SFBool   	loop          		
	exposedField 	SFTime   	startTime     		# (-?,?)
  	exposedField 	SFTime   	stopTime      		# (-?,?)
  	eventOut     	SFTime   	cycleTime
	eventOut     	SFFloat  	fraction_changed      	# [0, 1]
	eventOut     	SFBool   	isActive
	eventOut     	SFTime   	time
}

  Этот узел позволяет генерировать выходящие события через заданные промежутки времени.


TouchSensor
TouchSensor { 
	exposedField 	SFBool  	enabled 		
	eventOut     	SFVec3f 	hitNormal_changed
	eventOut     	SFVec3f 	hitPoint_changed
	eventOut     	SFVec2f 	hitTexCoord_changed
  	eventOut     	SFBool  	isActive
	eventOut     	SFBool  	isOver
	eventOut     	SFTime  	touchTime
}

  Этот узел может быть вставлен в любую геометрию и генерирует выходящее событие при нажатии пользователем указателем на данную геометрию.

Transform
Transform { 
	eventIn      	MFNode      	addChildren
	eventIn      	MFNode      	removeChildren
	exposedField 	SFVec3f     	center           		# (-?,?)
 	exposedField 	MFNode      	children[]
	exposedField 	SFRotation  	rotation         		# [-1,1], (-?,?)
  	exposedField 	SFVec3f     	scale            		# (0, ?)
	exposedField 	SFRotation  	scaleOrientation 	# [-1,1], (-?,?)
	exposedField 	SFVec3f     	translation      		# (-?,?)
	field        	SFVec3f     	bboxCenter       	# (-?,?)
 	field        	SFVec3f     	bboxSize         		# (0,?) или -1,-1,-1
}  

  Этот узел является контейнером для другой геометрии и задает для нее локальную систему координат/ориентацию/масштаб.

Viewpoint
Viewpoint { 
	eventIn      	SFBool     	set_bind
 	exposedField 	SFFloat    	fieldOfView    	# (0,p)
 	exposedField 	SFBool     	jump           		
	exposedField 	SFRotation 	orientation    		# [-1,1], (-?,?)
 	exposedField 	SFVec3f    	position       		# (-?,?)
	field        	SFString   	description    		""
  	eventOut     	SFTime     	bindTime
	eventOut     	SFBool     	isBound
}

  Этот узел задает точки обзора сцены

 

 

   
   
Главная Введение Язык VRML VRML 97 Cсылки Софт (Скачать) О сайте
             
Hosted by uCoz