Está en la página 1de 347

Indice

Introduccin
o Qu es el API 3D de Java?
o Qu Software se Necesita?
El API Java 3D
o Construir un Escenario Grfico
o rbol de Clases de Alto Nivel del API Java 3D
o Receta para Escribir Programas Java 3D
o Una Sencilla Receta para Escribir Programas Java 3D
o Alguna Terminologa Java 3D
o Ejemplo de la Receta Sencilla: HelloJava3Da
o Clases Java 3D Usadas en HelloJava3Da
o Rotar el Cubo
Ejemplo de Combinacin de Transformaciones: HelloJava3Db
o Capacidades y Rendimiento
Compilar Contenidos
Capacidades
o Aadir Comportamiento de Animacin
Especificar un Comportamiento de Animacin
Funciones de Variacin de Tiempo: Mapear un Comportamiento en
el Tiempo
Regin Progamada
Ejemplo de Comportamiento: HelloJava3Dc
Ejemplo de Combinacin de Transformation y Behavior:
HelloJava3Dd
Crear Geometras en Java 3D
o Sistema de Coordenadas del Mundo Virtual
o Definicin Bsica de Objeto Visual
Un Ejemplar de Shape3D Define un Objeto Visual
NodeComponent
Definir Clases de Objetos Visuales
o Clases de Utilidades Geomtricas
Box
Cone
Cylinder
Sphere
Ms Sobre los Geomtricos Primitivos
ColorCube
Ejemplo: Crear un Simple Yo-Yo desde dos Conos
Geometras Primitivas
o Clases Matemticas
Clases Point
Clases Color

Clases Vector
Clases TexCoord
o Clases Geometry
Clase GeometryArray
Paso 1: Construccin de un objeto GeometryArray vaco
Paso 2: Rellenar con Datos el Objeto GeometryArray
Paso 3: Hacer que los Objetos Shape3D Referencien a los Objetos
GeometryArray
Subclases de GeometryArray
Subclases de GeometryStripArray
Subclases de IndexedGeometryArray
Axis.java es un ejemplo de IndexedGeometryArray
o Atributos y Apariencia
NodeComponent Appearance
Compartir Objetos NodeComponent
Clases Attribute
Ejemplo: Recortar la cara trasera
Crear Contenidos Sencillos en Java 3D
o Cargadores
Ejemplo de Usos de un Loader
Cargadores Disponibles Pblicamente
Interfaces y Clases Base del Paquete Loader
Escribir un Loader
o GeometryInfo
Sencillo Ejemplo de GeometryInfo
Clases para GeometryInfo
o Texto 2D
Ejemplo de Text2D
Clases Usadas para Crear Objetos Text2D
o Texto 3D
Ejemplo de Text3D
Clases Usadas en la Creacin de Objetos Text3D
o Fondo
Ejemplos de fondos
La Clase BoundingLeaf
o Datos de Usuario
Interaccin en Java 3D
o Comportamiento: la Base para Interaccin y Animacin
Aplicaciones de Behavior
Introduccin a la clases Behavior
o Behavior Bsico
Escribir una Clase Behavior
Usar una Clase Behavior
API de la Clase Behavior
o Condiciones de Disparo: Cmo se Disparan los Comportamientos
WakeupCondition
WakeupCriterion

Clases WakeupCriterion Especficas


WakeupCondition Composition
o Clases de Comportamientos tiles para la Navegacin por Teclado
Programa de Ejemplo de KeyNavigatorBehavior
Clases KeyNavigatorBehavior y KeyNavigator
o Clases de Utilidad para Interactuar con el Ratn
Usar las Clases de Comportamiento del Ratn
Fundamentos del Comportamiento del Ratn
Clases Especficas de Comportamientos de Ratn
MouseNavigation
o Picking
Usar las Clases de Utilidad de Picking
El API Corazn de Clases Picking de Java 3D
Clases Generales del Paquete Picking
Clases de Comportamientos Picking Especficas
Animacin en Java 3D
o Los Interpoladores y los Objetos Alpha Proporcionan Animaciones Basadas
en el Tiempo
Alpha
Usar Objetos Interpolator y Alpha
Ejemplo de uso de Alpha y RotationInterpolator
El API Alpha
Clases de Comportamiento Interpolator
API Corazn de Interpolator
Clases PathInterpolator
o La Clase Billboard
Usar un Objeto Billboard
Programa de Ejemplo de Billboard
El API Billboard
o Animaciones de Nivel de Detalle (LOD)
Usar un Objeto DistanceLOD
Ejemplo de uso de DistanceLOD
El API DistanceLOD
API de LOD (Level of Detail)
o Morph
Usar un Objeto Morph
Ejemplo de Aplicacin Morph: Walking
El API Morph
Iluminacin en Java 3D
o Sombreado en Java 3D
o Receta para Iluminar Objetos Visuales
Ejemplos de Luces Sencillas
Dnde Aadir un Objeto Light en un Escenario Grfico
o Clase Light
Luz Ambiente
Luz Direccional
Punto de Luz

SpotLight
Aplicaciones de Fuentes de Luz
Ejemplos de Iluminacin
o Objetos Material
Ejemplos sencillos de Material
Propiedades Geometry color, ColoringAttributes, y Material
o Superficies Normales
o Especificar la Influencia de las Luces
Alternativa a los Lmites de Influencia: BoundingLeaf
mbito de Lmites de Influencia de las Luces
o Crear Objetos Brillantes-en-la-Oscuridad, Sombras y Otros Problemas de
Iluminacin
Objetos Brillantes-en-la-Oscuridad
Calcular Sombras
Crear Sombras
Programa de Ejemplo de Sombras
Tpico Avanzado: El Papel del Objeto View en el Sombreado
Texturas en Java 3D
o Qu es el Texturado?
o Texturado Bsico
Sencilla Receta de Texturado
Sencillos Ejemplos de Programas de Textura
Ms sobre las Coordenadas de Textura
Preview de Algunas Opciones de Texturado
Opciones de Textura
Texture3d
o Algunas Aplicaciones de Texturado
Texturado de Geomtricos Primitivos
Texturado de Lneas
Usar Texturas Text2D
o Atributos de Textura
Modo de Textura
Textura con Color de Mezcla
Modo de Correccin de Perspectiva
Transformacin del Mapeo de Textura
API TextureAttributes
o Generacin Automtica de Coordenadas de Textura
Formato de Generacin de Textura
Modo de Generacin de Textura
Cmo usar un Objeto TexCoordGeneration
API TexCoordGeneration
o Mltiples Niveles de Textura (Mipmaps)
Qu es el Texturado Multi-Nivel (MIPmap)?
Ejemplos de Texturas Multi-Nivel
Filtros de Reduccin para Mltiples Niveles de Textura
Modo Mipmap
o API de Texture, Texture2D, y Texture3d

Filtros de Reduccin y Ampliacin


API Texture
API de Texture2D
API de Texture3d
API de TextureLoader y NewTextureLoader
API de TextureLoader
API de NewTextureLoader








  "!$#% '&)(* "!+ ,
&*!- .' !/(! 01"!% "2 43"52,*%!% 4
 
 "!+ &6- 4&07817!+9 #: &0';%!- <" 24 * 0  =  >" ,*?
 7
 @ 97
<" !+<<"
'BADC< * * * E=FG6  ,H(! 0E(
07!+&* 0 5* &0 '&&* @78<&07 6-!:*&6I0!%J<"
" I0'KL *( !+ & !% !"M2  ( "!102*%!ON 47PM46%!Q*&6%'!% ( !% < .R% "!76+
102%!QN 7=

*  ,7S(!+0(*0"!+&* 0E* , T#-" &* 07( "!% &*!% '&  @78<", 291*'U
' * "  V '&* 0*U* " 2 '&* 07*;M(!+0'1!% 2 J<", "(  & '&  0*81!+9 #: &
47
 
 "!+ &6% * =
        
        

 <'  49"!:.*0"6<'&*  J


*  3* !$ 78&07280W !$#+ '&)(* "!+
  "24 J<5!+7 <!- V* <'0<1"!%9*#- &0';%!- < 2  07 " ;M"8* 6+2 <' 0 <0E='
(!+01!% 2 '<07!%!+ . XR% &
04&
0 %!:*&6I07!+J<,  I0) *" (* !- &*!%' "!"M2 7(' "!0.YR%I0'
102Z%!- &60'847[=\
I0'J0".R% 0';1"02Z*-!- &0'!+ <'74"" *"!+
0  !I% U*3
 1'0,!% <"!: V* <0E=  9<" 
] '<0,&
0;#-  ?' .'   < <)(* "!% &*!%' "!E" *"! 
0'
' !I-* " (!%'&  0'J<5" ,925(  4  !: < '<<" 2 7] 0'U <' < %!+07 @2 &08
. * @2 &0=
^( 
!"<"4 0<" , 4#- &* 0E "  < '<7U*X ; "*&*   0<5  !O=_ 08<"* "  J<
!+7
<"!- V '<'0*52 XR% 4 " I029% & "2
+7=`(!+0* &a9*<0' <", 0;bFa!%' <'J
*  U
"
!+ <"!: V* <0"! * * ,EJ&
7( V4<'5!%7
<"!- V "!7( "!%   0\=F
!+ <'!- V* <0"!
 "2. Z(<"07(
% 2 V
"! * 
 0"29*- &
27 )(* "!+ 52XR%0"!% "!"
!%*<" 2 "
I0<"
!+7
<"!- V '<'0E=
cB(!+0'1!% 2 
*  7d&*!+ eR%"25( "!+8<0.R%I0'J
*  EPM 0'J* %f 7
6-!-*&6-'!% << I0'8<', &
* "!- 01"!%9*#- &0\=\  &
* "!- 01"!%9*#- &0,"
&0"25( 0 &* @78<0.R%I0J77* %!-&`-'!% <'9!-.*063"(*'&  #- &

&0"25(  2+"6&07+ <'0<"," !  0  !I% gUM4&@"240   *!/!+ <"!- V* '<0\=

_ 0(!+01!% 2 J


*  ES(<78 & !- . !  W( !%  !EXR-&*
% <08&0240, (  & '&* 0*

0"   "!- J0,&60240, ('( I8 '1 <'0!%83Wa* M "8 <0*?
+*<" <0'( "!%

0(*0"!I% !
*  EhU
0,92.0=
                       

b/ '&07
*eR+0,3"+<'' 8 '  W(
07!E )ij0725 1< * * ,778kG'"l
a $-("l m$m R-  E= *""= &602;mO(!+0'<*&6I`m R% *  KO2<" m%'<

        
b\0'<0W('! 0'1!% "2   7d 97U "
27
0'U( !+&* " 2"
+ 
2. <'0)(*0!"0.R%I0'8<'"
9"!:. 0`<&  *; *  E[=\ &0" &
&* @8<"0.R%* 0J<" &*!- .," !  0  !I% gU
3"4    !\!% <"!- V* '<0\=X<'*#- 5 5n6o'o&*  (!%*
 '<' '8"4
(* '3"+pgqXrYqXs`t uwvexy q
t p$zXx
iw M4&  "
I0;<"& "25(
0;M24ZI0<0'4" 8&   ;<""G  [= k 4"2. "!+10EU
 "*&    05 ! 
0  !I% "35 *&  
M*   2 &* @E(<"&0E
%!-' !  &0E* ( 0'& 
&* 
=\ &
"(N %' 0,< & !- .*W8&
07{R:"
I0W2,NI 240<"07.YR-* 0;M8  
 "!% &
&* 07*
(* "!+ 5!% <"!- V "!\' !  0  !I% |=
\ W(*91 * , &*  M ,"`<* "!-!+0"  0<'W8  &*   0)(*"!+0,&6025( *I0}(! 0'1!% "2   hU
  2 '<0 i"  0'  '7w<\= R% * * U 3"52%!% 5&*.01" !% * 0!- 0\=F (! 017!% "2 <"
eR%"2( 0*<"
!-!+0"  <8#+0!-2 5 *& !+2
 "UM8 W(!% 
 ,";  !- T !  0'U
(* "!+ <20%!% "!& <" W(* "!I <'"*(!+0&

0<)(!+0'1!+ "2 &* @E8
*  7[=
G<29J<" (* '3" &
0"!% V
@E8<  hU  W*
780%!+0'(* '3" ( !% 
&*!- . !
(!+01!% 2 J
*  E[=cB 0,<',6 0(* 3"J8~6uBt `6t p$zXx
t {|y [3)
07!-2  2%
 5!+ #%"!- "!%&0240,&  *J<"5
%   <' <J<  [=' (* '3"* <", 8&*  
&0"!% V @7 *&  
M*
@" 0W 8&* 
J<'52 0!/ * *'&
!- 8 5(!+017!+ "2 '&* @7
 ,[=
_* 8&* 
8<5 %   < <"J
04 '<" &* 0*8&
0 7 "
 ;M,(
0<"! 0* 8 "&0!+ *V*@7"=
\ 8&   J <"  <'744&* %! 0,&
 '107!QN 'l*& "! 1" <'0"!%8<'&
0
+ <'0'U* *M'*< 4

 &0 %!:&&* @78<"6


& * "!- 01!%9 #- &60EU &*  8<102*-!QN M
%   <' <J<
&0  *&* E=
[ 
%   V* !\ 8&   J<"5 %   < <;*5!+<7& 17 #: &
*-  2"
+" f'2"!+0<"5N|*' 
<&
@'<" 1'0,"(!+01"!% "2   [=`G<"29J<5 8&   J<"5 0( 3*+
&0"!% V @7JM8<5 %   < <"8< *  EhUI0'<'0)('! 0'17!+ 2 7S * &   J<W 0'( '3"*+
p|qrYq
t q\ MBp|qrYqXs`t rYv`~YujqX|
='F (* 3" pgqXrYq
t qE<" #- ,"6%[.*%!+ '&`'S
<'0*J
1b\00"  
wdb\=_ 8&*  wb&*!+ 7 8 
 7 )( !% 5240%!% "!7"
!+*<'!- V* <0E='
(* '3"+pgqXrYqXs`t rYv`~Yujq$h<*#- &*  8<'4 '&6I0"!-2 *+29*- &0( !% W('
I0'U
&6I0!%'U24 -!- &;M80%!+0J07.YR%I0'2  29*% &60'=
F4"
!+I0<"e+ ? I0EU "e+Z!-2  05X%I *"`
5
%   V "!+9W(* "!% 5!% #+"!- !O 0'8 ,"
Q0.YR-*I0<" &
* "!- 01!+9*#- &0 (
07!eR%"25( 07U4&*'.*00W" ,6#+"!% ='e Z"!-2  0
7%I,
@ 0 5  !+9)(* "!% ,!% #%"!- !  , 54eR%25( "!"<"," &*  E=Fe+Z'!-2  0
7 7 ,
5*
"!%9W(* "!% 5!+ #-!- !: 0'8 0".R%I0T  * " 8"4 &7* "!- 01!%9 #: &0
&0"20WJI0'<'0\=
                          

c  "! 
0 ' !I-* "`   &*!+' <" <'W &7 !- 01!%9 #: &0E='cB &7 !- 0
B
1!%9 #: &0 & !%' 5 * 7
<0,eR%"2,( !%J<&*  8
* * ,7[=F6
&
* "!- 0,1"!-9 #- &60,6+9

* 2,.' <'0< <'0".R%I0'83"<" #: * 102%!QN 7U 0J
07 <0'U  *&
U
 0&
  V* &* @7'U 0!-  &* @JM  (* "!-  &* <W 0J0.YR-* 0T ' * " ;M8
07 0!+0=
cB* <*#-  &* @78&072f"4<'W4 &7* "!- 01!%9 #- &60, %!:&`-'!+ <'< *+0
&0"25(6+ <)
0<0';M !+&0='ch*0<0,4" "2
I0,<'  0M4 "!+&0,
!+" '&  @%!%" 247+0J<" *I0'=_*0*0'<'047"4 & " !- 017!+9*#- &0,07 0'
eR%"2( !+8<5 J&*  J  [=_ 0'4 !%&60'!+(!+*7 78<'0';% ( 08<5!% &* 07*
%!-eR%"25( "!%J
*  ,7[=
_* ,!- '&* @7298&6072f4( <!%Ka R%0E='cB
0<0)4 7,(< 7*"!7&** " 3 "!
f'2!%0<"Wa R+0'U'( "! 0,@ 0W',( <!%7='cB,
0<'0Wa0eR- 
@ 0)(<" ""!\',(* <!%4M*0
(< 7*"!Ea' R+0'=_* 0'%!+ 5!+" '&  @74* )%+"+ E=cB* ,!+*#%"!%"*&* , 
0'&* 5"
0.YR-*I0Dw"G,*7" "&0"*0<0<"6 &* "!- 017!+9 #: &0E=_ 0'J0.R%I0

j
"G,*7* < #-
 1'0"2-!QN M 0'8 -!- .'
 0J< 7(* "!-  &* W*
'<0'(* "!+
!+7
<"!- V "!E 0J07.YR-*I0'; ' * " '=
cB4 & " !- 0,1"!%9*#- &0  ,+9&60E
%!-' <0,<'0.R%I0'
0<'0'8&60E!+ &* 07*
(* <!%KLa' R%04#+0"!-2 7
<0W* %!-*&6-'!% <9"!:.*0g='F' %!:*&6%!+ <',9"!:. 0U', 0'<'0
8 !+ N V= kjW(*"*<" & &<"!7 0%!+0' 0'<'0'J* 1"' 7
<05 08 "!+&0'J< <', !+ 7N V"=_ 0
 0'<'08<","49!:.*0"**04#+0"!-2 .'*&* =ch4 & * "!- 01"!%9*#- &0, 94# 07!-2 <0<
<5 0'
9"!:. 0 8&60E!% N &
4" 0'J0.R%I0,*  E=_ 05j"G,*7* I;M !+ #+"!%7 &* 8
"!+&0' 0# 0!-2 ( !I+<
&
 !: 01!+9*#- &0\=
kF@ 0,*? 6+,4&
"2  0< <, ,!- N V8<"549!:.06 &
<" ,"* <"5 a0eR- ''(
07!E 0
  07U 
@ 0Wa *M"8&
"2
0< <5 5!+ 7N Va  , &
" !- 01!+9*#- &0<&
< )
0<'0
a*0eR- 7='6&
"2
0<"
<W 5!+ 7N V8<5 &
 !- 01!+9*#- &0Wa 6+ 5* 5a0eR- (*'&  #- &
<'
8& "2  0, " &7 !- 01!+9 #: &0,<'"  0'<0Wa*0`R% E= G0240W"8&
2
0,<54 & * "!- 0
1!%9 #: &0-!+ *+ *? '&6+ 27+&07"80 Wa 0`R% 7Ua *M"4& "2 *0<" &
7* "!- 01!%9 #: &0
(* "!+ & <" 5a*0`R% 4"6'
&
* "!- 0\=
b\0'<0&
"2
0,<',
&
7* "!- 01"!-9 #- &60,7"4 & * "!- 01!%9*#- &0
*  7d(&* #: &

&0"25(  2+5 ,6# 0!:2 &* @74<',6+ <'0<a0eR% E='\6+ ,6#+0"!-2 '&  @7 *&* 
M*7U
 0&
  V* &* @7'U 0!-  &* @JM4"e+ 2 ] 0,<'"`07.YR-* 04 '  |= G07
*&
 27 7U 0
%!- .'
+0T ' * " J<&
<" 0.R%I0  * 6<( <J @ 0<4& "2 0<" &
* "!- 0
1!%9 #: &0E='!%"*<'!- V* <0!
*  7 , "('! 0* '&*a <" ,'& a0M!-"*<'!- V* 5 a*0eR- 
4"60"! <""3"Z6<"* !-2 * ,298 #- &  "
 E=*(! 0'1!% 2 <'0!" *  ,
07!-2  2+
 0- *&07
%!+0"6
0".'!%,60"!+<8<W!+ <"!- V* <0<5 0'J0".R% 0''=
_* !%7(!+*
 &* 0E 81"!%9*#- & J<'W4 &7 !: 01!+9 #- &0W('*'<8 "!$ ' !&0240
a"!-!+ 2 + <"<  7]
0M`m%0<0&*'2
 &* @7,( !% 5 0'(!+0'1"!% "2 J  ,[=_ 0'

&
* !- 0';1!%9*#- &0J <" .R% 7 * "*<0'Ng2,.*0 0'J1"!%9*#- &0'8 97 < "! <'4&60240*4 *
 ) 1!- Dn`Kn=_ 0(!+0'1!+ "2 ; * * * ,7S( 0<!ON "J+*"!E29J0.R%I043"5 0'83"
a *MJ & "!- 01!%9*#- &0E=
 "!+ <" 
]* "!E" !+
0  !I% 6  7 < .R% 5'
&
7* "!- 01"!-9 #: &60W*
 <0W
&0YR:" 0<N|2.*0" 046+9 < "!+<E='w'(ZJ<&0"25( *+ "!"6<" 
] 0EU 6+ &
7 !- 0
1!%9 #: &0 (&* #: &
&* @7(* !+ "*(! 01"!% "2 7=w(ZJ<"&6025( * !" (! 01"!% "2 U
"
2 240, &
* "!- 01!%9*#- &0," 5!%7(!%
7% &* @74&60E &*  <" (!+0'1!+ "2
'2  <03*** 1"' @W (&* #: &
&* @7
=

B < 5" 0<5 0'J'Ng2.*0 0'280'%!% <'04 "


 <'0) V*3' "! <'0<", ) 1!- n= nJ!%(!+ 7+
J @ 00.R%I0,&  "*<'0 5 * 4
& * "!- 01!%9 #- &60\=_ 0'J<'0'(!- 2"!+0J'Ng2.0" 0'
!+7(!+*
 807.YR-*I0'J<,&* 
8(*'&N #- & 'l
h $%"B' *
M,*  E=_
0 1 
 
%!+J'Ng2.*0 0'J<5 5 V*3" "! <" ,!-"('!+*"
+ 7J07.YR-* 0J<", 8&* 
4 ""U''QU6M
j"G,*7* Q=/6 0;%!+J'Ng2.*0 0' 07!-2 " 27 % ""  0 '&  07*(* "!+
  < &
!\ *'.*&* *<""`0.YR-*I05(*&N #: &0E=' f - 240N|2.*0" 0
W*
)( !% 5!+7(!%
7+ "!
0%!+ J&* *J<"07.YR-* 0"=
6Ng2. 0 0<5 8#: '& a @  < 5!+"('!+ 7+ ,"* 5!+" '&  @,(* <!%KLa' R%0
%!%<'0'J0.R%I0=
_* 8#: '& a W("  <" * 5!%*#+!%7 &*  0%!+00.R%I0\=_*0J0.R%I0'!% #%!% &* '<0'
(<7J "!&
0"25(* "!I% <08"
%!%<" #+"!%"
+4!% "2 J<"5*  &7* "!- 01!%9 #: &0E='F
 1"'!+ neK:CEU'( 0'<"240'T "!E"8
7 &*   0, &
" !: 01"!%9*#- &0\l

\( 0 .' &*!+' "!E"4*&* "!- 017!+9 #: &0W  1' "g=/0'<"280'T "!\ 0,7 ) 1!- n6K:E=
\ 
&
* "!: 0,  1 " ( 0"!%3"4 ' 0 5 (! 0E( <" <"J<"5,h='*(! 0. 2 0E
 0'J<0'J0.R%I0'8F+7 6 7-4 73"*% "*" "
2 2400".R%I0WG7*'7>&602405a' R%0E=
w'& !%< 3"W' ,a0eR- @ 0)('< 7 "!\"(* <!%E=F80%!% (  .!% 'U @ 0)('*'<
a "."!\4&
"2  0<
<""60".R% 0  Wa  5 5a*0eR% 0W"8&
2
0,< <'5 Wa*0eR-
a + 60.YR% 0* '=
/0'<"!QNg 20'(
* !E35 %!-&`-!% 520%!+ '< , 4#- 1!% Dn`KQ<*#- *%!+;07.YR-* 0
' * " 8" *!  04 ' !I%* "g="! 0, & " !- 01!%9*#- &0<*#- *<'0'80".R%I0
' * " 835!%KL*
74"60".R%I0 ' * " kGa* 7( 7j\<"
 <'0<"!%&*a0<"W 4#% 1!- 7=
G07 & (
%  24%U*& '< 07.YR-*I0,j+*`+-8 73 ( <7!- *  XR-"2,( !
&0"25(* !I% <'0<",G7*(
0'<"!QNg  -* "!E"* 5 2 147460".R%I0 '  "68<" #+!%%
 0&
  V* &* 07 =
k8"2.* ! 1'0EU 4
& 7 !- 01"!%9 #- &60W  1 " ( 0!+3*,6 "!+&0W( <!%K
a' R+0) 0# 0"!:2 W'9"!-.*0g='F4 ,eR%2,( 0EU "
!%  <'058360.YR-*I0)*'E
% "*529J<5"( <7!+E=
_* 4*?'(  & '&  0*8<9"!:. 0eM8<5 J%!:&`%!% h
04&
0"!-!%'&6 =*k 42. "! 107U
"`  "2 <,XR-&**&* @E8
*  7>!%7(
07!I "!:! 0"!E"J Z!-2 *0J<", 5!+ &* @7a' R%0K
(* <!%7='cB!%  <0,<'W ,  2 + &* @78<'5 6-!:*&6%'!% <"9"!-.0"83"&
< 0.R%I0
*'E6+9,  2 + <'05 ,8
@ 0)(* <7!+7= !- "6eR%"2,( 0<"5 ) 1"'!% neK:7U
*
 
V "!%95 *?&
( &* @E ' + W"+7
`4
240"2"
 0<", eR%'&**&* @7=_* ) 1"!+
n`K%\U*&607',(* <!%W(* "!% &
< 0.R%I0W'EhU*2%!% 5 W( 0'* . 0 &  @( !%
6+ &
7 !- 01!%9 #- &60\=

c (!+0'1!% 2 
*  7d3"<" #- W4 &7 !- 01!%9 #- &05  1' " ( 0'<!QN ,&0"25(  "!  U
B
(*"! 0} 0*5!+*<'"!- V* E=*[ *<0*XR%'&
 5"(!+0'1"!% "2  *  7d3"<'*#- *W'

&
* !- 01"!%9*#- &60W  1 gU "`* 6 "2 
*  7<"* '&6 ,*(! 07. 2 M V* W'
*?*&
(*&* @7=' (! 01"!% "2 5(*0<7!QN 6+9"!eR%'&*  7 <'0*M4&60E
 '&*"
+"2%
<"."!QN 20(* !% "!- 0\= k 42,. ! 107U' 0 5!% <"!- V* "!%95 *1"" 5 24 '17=

< 
& * "!: 01"!%9*#- &60% "*58
@ 0h I%B 
\=\6+0.YR-* 0:  5 5   <
B
0.YR-*I0',*  \=cB80.YR-* 0}* " )(! 07(
07!+&* 07* W' 5!+ #-!% &* , 5(''
 0,4"
 *"!  04 ' !I-* "g=/0<""240'(*7
 "!7 0'J0".R%I0',  ,&0"240W2 !%&
J<"% "!-!+ ,3
<*+"!-2  " 5 0'&
  V* &* @78<'5 0'80".R%I0'T  *  84" ' !  0 ' !I% |=

\; Z'& & "2


 )(
0'* .' 5(* "!% ,"(! 01"!% "2 
* * ,7P 7 !E29J<W80.R%I0
h I%h 
EUM8 'N< #- !E298<W'' "! 
0 ' !I-* "g= k 42. !+1'07U' 0Wa *M
  1* 4# 0!:2 <&02,' &
&* @E4
%!+5 0' !  0' ' !I%* " =eG<"29U'40.YR-* 0
<5 &
 !- 01!%9*#- &0) 0)(<" ?' % !29J<5" *"!  04 ' ! %* "g='\
"  "2
 5!%&
0"27 < ". 5*
"!\ 0M8@ 0W"8`R%"2,( !<h %G' *"+
5"4&
<
(!+01!% 2   7[=
 -!+ 43*W'40.YR-*I0,h I%"gB * W( 0<!QN W!+*#+"!%*&  !\2&*a*0'J0.XR%* 0,*  7U
 52 M
0!QN <5 0(!+017!% 2 J
*  7P% "54@ 00.YR-* 0* " E=*B <
0.YR-*I0\* " )(*'<'*"!$ ' !<'5!% 7N V( !+ 4  !- 08.K-1"!%9*#- &60'J<"6 &7* "!- 01!%9 #: &0E=
/0!eR%"2,( 0EU
*
0'!+ #-!- 280'8 5 ) 1"!+ Dn`K:C)(
0<!%20J07.  !$ * !E J<'0!% "2 
.K-1!%9 #- & 83" " 4<'
<,60".R%I0  \=
cB80.R%I0j+7 8+4 5!+ 7N V8<'WJ'.*K:1!%9 #: &07U 05!% 2 1!+9*#- &
E='iw M8<'0'
&
*+1'0!- J< &7* "!- 0'J*. KQ1"!+9*#- &0''l 5!+ 2 <"8 '  1!+9 #: &
4M 5!% 2 <
&0
+ <'01"!%9*#- &60\=_* W!% 2 <&07
 7 <'01!+9*#- &60,(*&* #: &
"&607+' <'0<
 *"!  04 ' !I-* "`K\102%!QN 7U 7(* "!-  &* U*&6072,( 0!I "2 "
I07U 0&   V* &* @'U 07 <'0';M
 &
=_* 5!% 2 <4 '  1"!-9 #- & (*&* #: &
5 0(* !-92*-!+0J<"8 ' *   V* &* @7'U*&0240W
( 0 &* @78<4 ' * "  V* '&  @JM < !+'&&* @E=
'
+ 'U ;<'0'4!% 2 8('&* #% &
"
2 *M*0!QN <'"e-!+ ". XR%0,3"" !+ <"!- V* <'0"!"% 7*3"5a & !O=
!  "                         
     

F )7 1!+ n`KQ5(*0<""240'T *!E 0;%!+(!: 2!+0' *" J<"69"!-.0"6<',&* 


J<'"
 ,[='F4+ W( !I <9!Q. 06 (* "!%&  4&* 
Jh I%"B 
7U'*  7U
8 7"UM,'*O=
8%"'4+  '(*!+&   <'& eI0<"  8&* 
8&60!% V @EJMJ<W
-   <' <
< * * * ,7[=6bF "<'0'8*'.*&*  lwM5j"G,*\* Q=_ ;.*&* 
J<
j)(! 0(*0"!+&* 0E 7 52 *M*0"!QN <'5 0'J0.R%I08<54 & * "!- 01"!%9*#- &0\=cB80.R%I0
j,480.R%I0) 0<'0)4 740W'80".R%I0}
0<'0}'L=
[  )w"
_* &*  }'"' *(*"!+&*   ".*%!+ '&`+ <"5 8&*  8 78M,**L=\ &* 


< #- , " 1*0J<", 02Z* 0'<0 2( 0"! + "


+J<**J'.&  *=_ J'.*&* *J<
j,&0"2,(
0E*4*&
* "!- 0J1!%9 #: &0=
[  ,8+""
_* &*  54 7 *'(!+&* *,* <" 74'( '&* #- & '&  @8<", 0'&
"  V* &* @JM
0!- + '&* @78<0".R% 0T '   8""
 *"!  0  !I%* "g='j0';<5 J*.&*  J<
8 74
0"l'F+7 '8 ""8MJF+*6 :8 7=j 5!+"('!+*+ '&* @417!+9 #: &
<"5

&
* !- 01"!%9*#- &60EU 0J 2.*0" 0'J<W4 7 &Ng!+&* 0
*0"!:2 " 27 * "*0 74&60E
( "!% )j+ '8 7 'U (* !% j+*`+-8 7*U**+&=_ ) 1"'!+ neK:CW2%!%
" 1 04eR%2,( 0'8<',I0\=
[  W**
_* &*  )' '(*!+&*  5* <" 5( "!% '( '&  #- &
"!E 4# 0!-2 U6
0 <0M
&0"25( 0"!I+ "2 7I0<"5 080.YR-* 0T '  " 8"  *"!  04 ' !I-* "g=`[ 1' J<"5 
.&  *J<}**
0"l**'EhU'' 7 QU*' 7QUMF7'*\=\I0'J0".R%I0(*0'<!QN 7
 0+!\a R+0(*"!+0)( 0'<7!QN !% #+!+7 &* "!7 j'"G7, E*
'=
[  )w"G7*7*7
_* &*  }'"G7*7* " '(*!+&* *,** <" 5( "!% '( '&  #- &
"!E 102%!QN U
(* "!- 7 &* 7U 4+ ? %'!+ M (! 0E( < <"J<52  !- 6<5,
0<'0W'E _* *# =
_ 05w"G,*7*E I
0# 07!-2 ( !I+<" &
" !- 01!+9*#- &0EU(!+0
0
!+*#+!+*&  <0(*0"!EZ|=*5j"G7*7" E( 0<!QN *!\!% #%!%7 &* <'0)(*0"!\29J<5"
0.YR-*I0WGE[=

#      $         "   
  %   &        

*_ J.&  *;<"5 8+74Y- 


0 0 <!-   083"**  2. " 0'

&
* !- 0';1!%9*#- &0=_* 5N$ ' 5.9 & <'<* "!:! 0"  0<'W(!+0'1!+ 2   ,
&0 *  8 *+W(* 
0 5 083"5 '( '&  #- &
'&  @8<"X

* * E ,!% #%"!- "!%
&0"20WWw  (!+ "
+ <'0'8 &
07% &* @E='\ 5!+'&
 W(<"5* ! *W(* "!+

* 2,.' "!E2,*&*a*0'f
-  (!+01!+ "2 J * * * ,7=
Crear un Objeto Canvas3D
Crear un objeto VirtualUniverse
Crear un objeto Locale, adjuntarlo al objeto VirtualUniverse
Construir la rama de vista grfica
o Crear un objeto View
o Crear un objeto ViewPlatform
o Crear un objeto PhysicalBody
o Crear un objeto PhysicalEnvironment
o Adjuntar los objetos ViewPlatform, PhysicalBody, PhysicalEnvironment,
y Canvas3D al objeto View
5. Construir la(s) rama(s) grfica(s) de contenido

1.
2.
3.
4.

6. Compilar la(s) rama(s) grfica(s)


7. Insertar los subgrficos dentro del objeto Locale

\ 5!+'&+ 5 17 0!%   1 0'J<   ( ! 0W  *%!+ &07*&7( 04#:*<' 2
+ *( "!% I0<'
 W(! 0'1!% "2 '&* @8 *  ,[l &*!+' "!E ,!% "2 1"!%9*#- &
<"6 &7 "!- 0,1!%9 #: &0
(!+01!% 2 '&  @,(!- *& ( "|='F; *V8<', "2,(  !7 5!+&  U  1 "
+ '&&* @4 ?"(  &

* 4# 0!:2 * &*   <'&0 6-!: !E"8 &
* "!- 0,1!%9 #- &60W2 M8* 2  "!&02"*0
(!+01!% 2 '&  @"=
'           #      $         "   
  %   &        

_ 0(!+01!% 2 J


*  E
&*!-  0*  <'0W 5!%'&
 5.9* & % ""!% "2 J<"8 ' 
1!%9 #: &
&07 <'Z7- &
-!-&`%!+ E=_ ,!-17 "!- < <<5 %!:&6%!% <5 !+ "2 J<"
'  1"!%9 #- &  "2,. "8*7 &*
%!+ ," &* 
<"5
%   <' <5G , 7B "+
/=*_ 0
eR%"2( !+8<, &*  5!+' "  V  0'( 
0'JCEU*MT5<5 5!%&
+ 5.9 & E=cj 
<05
&* 
5 , EB " ",(!+01!% 2 '&  @8 *   5!%'<"&
 17 #- &
*-  2+"
% 2,( 0M4"66#-"!IV*0)*'& "!- 0)( !% &*!% !E !+ "2 J<"8 '  1!+9 #: &
E=
G07
*&
 "27 7U*(! 01"!% "2 <0"!"% *529;- "2( 0)(* "!% &60E & "
%!% "! *74
&0
+ <'0\=\I0<, 03*%!+ '<' ,
&*!- .' !/(!+0'1"!- 2 J  7=
_* &*  ,G , 7B "+
54.",(
I0,<5  &* 0, W(! 01"!% "2 '&* @78
* * ,7hU
( 0!+3*)(*"!-2 + "*(!+0'1!+ "2 <0"!\ 1E
07!+ !\ 4!- "2 J<"4  6+ 1!%9 #: &
7= k 4"2. "!+10EU
*
!E , 7B' *" )
0)(!-2 +4+*"! * "!- ;  6+ J<," !+0  !I% |=
_* &*  ,G , 7B "+
, ,* JI0'<0'4 08eR%"2,( 0'8<')(!+017!+ 2 &  @8< 
% I0!- "g=
 ' G , 7B "

&0 6-!-*&6I0!<,G , 7B " ,&*!+ 54 &


* "!- 017!+9 #- &60,35 *&*  M W80.YR-*+0
h I%h 
M*  7U
M'* 5!% 2 <4 '  1"!%9 #- & &02,( + 7='\ 5!+ 2 1"!-9 #- &
&*!+' < 5* 5"8eR%"25( "!"<5 8&   8<&076  7 &* [ 8 E *|+":MJh T
  1" !7<'5 8&*  4&60!% *V @E** <" ( !% &!+' "!E" W!+ 24 <8 '  1!+9 #: &
7=
.*
"!$  35 ' EB " @" 0W*
5  <" !+&` "2
 5 0'J0.R%I0J[ ^M
h 8F *$ :<'"6&0!+ *V*@8 *  ,[=_ 0'J0.R%I04G , 7B "+
2  %!+ 

#- &* 07   <' <,<' 0'<'0' 0';0.R%* 0835a M8<


%!+0<"
!+'&* '<"!+0, V'`<5 ) 1"'!% Dn`K
=
*( '3" ~`uht Xe`t p|zXx
t {|y et X`y rYv6{v&
07% *5 , 7B "+
EU[ 8 7F g+-WUM
&* 
Jh *T"<'&0 " 7 &* E=

[   "!E 0'J0".R%I0' , 7B 


5 ,!+'&
* 5.9 &

 2,(  #- &
7l
1. Crear un objeto Canvas3D
2. Crear un objeto SimpleUniverse que referencia al objeto Canvas3D anterior
o Personalizar el objeto SimpleUniverse
3. Construir la rama de contenido
4. Compilar la rama de contenido grfico
5. Insertar la rama de contenido grfico dentro del objeto Locale de SimpleUniverse

GE %- +'J',w  EB "


 '3"*%7l 7 W  +'\ %  *

\ &* 
&0#- 17!- ,"4
I0"!O 0<5* "!- 0W2,N$ 280)( !% 07.
 7 !E!%9( < M
#+9'&*  2 5"(! 01"!% "2  *  7PM4XR-&
+ "!- 0E=
\ &* 
<5 %   < <,&!+' I0'<0 0'J0.R%I0''& "!- 0'(* "!% 5 5!+ 24 <8 ' 
1!%9 #: &
7='\(*'&  #- &
2
+&*!+ , 0J0.YR-* 0', " EUh I-"B " 7U
h J 7F | 7-5U
M8h T I0'<'08&078*T   0"!+(
07!"<" #+'&6I0'=_ 080".R% 0';%  5 !%" '&  0

(! 0E( <" ( !% 4# 0!:2 "!\ 5!+ 2 <"8 '  1!+9 #: &
7=
k 2( 7cB !  )(!+07( 0!%&* 07 I0< 5 4#- &* 07   <' '<)*'&
 !- W(* "!% ,2,& a 
(  &
&* 07 J *  7S.9 &
=
h T""MJh *; *j $ :074&   8<
&0  *&* E=
6+ 8&* 
   8&* 
Jh *MJh 8j $ :<'"6&0!+ *V*@78  7=
y ue v67ey rv6Yv6g
G07
-!- M*5"8
7 &*   05' "! 
0 ' !I% "g=
y ue v67ey rv6Yv6|q6YrYqXYz6~q6{rqXz6
G07
-!- M*5"8
7 &*   05' "! 
0 ' !I% "6&07"* 5!+*#%!%*&   "60".R%I0}B
*'
E
 02.!- <'0E=
60".R%I0W  EB "I 5& !+' 5' ,!% "2 <'4 '  1"!%9*#- & &0"25( *+ 5( !- ,"
 *"!  04 ' !I-* "g='\ 5!+ 2 5 *&  
M*5( I0,<5 2 1='ch( I0,<'W 24 1'744"
!+'&`+9*1"' 0,&07*&
(:* "`<'07 <*W(!+0M '&6+ &607
+" <0W( "!% 8#+0"!-2 "!E 5 24 1
!+7
<"!- V '< 7='`0.YR-* 0)B7'
EhU 3"5(!+07( 07!%&  0* 5 , 24 1"4" 4 "
+ " <
6-!% 5( + "  U'(<" "!7" ( I0<5 2 17=
_* W7 17!+ n`KQ52%!% W ,!+" '&* @787-!%"*( *I0<", 2 1""U 5(*0 &* @8<"60eR+0EUM4"
 *"!  04 ' !I-* "g=_ )( 0' &  @7J<""`0`R+0, 9<"*%!-9J<"*( *I0<", 2 1""=_ 0J07.YR-*I0'
' * " J<'" 7 <*( * 0<"5 2 18
07!% <"!- V* <0878" ( I0<5 24 1"=
!+7
<"!- V '<'0)(< "!E&60240W* W('! 0M'&&* @74<'5 0'J0.R%I0T '   8
0".'!%*( *I0
<, 2 1"=\ 5 <  5   %!+ &0 0'8&  *-!+0}(! 0M*'&6I0!+8<'5 , 2 1 N$  
(
 ' '<' 
=

/ 0!"<" #%&6I07U" ( I0<5 2 14 9&


-!% <0,460!- 18<5 , 7B' " E=_*
0!- + '&* @7( 0!<*#+'&`I052 !+  <05a &*  ". eR+0,"6eR%w='w
<"+ W( 0'* &  @U "

eR%8S' 5N|*' 5a0"!- V


07% 3 *%!% * ' 
"*( I0<5 2 18&
07 0T   0"!%
( 0 % *0a &* 5 <"!%& a 7='XR-JH* 5gN| ' 4 "!I% & "3 %!% *   &
"
%!+0<"
( I0<5 2 17'U*&607 0'  " 0!%(*0 - *08 "!-!: . 7=*G0 *&*7+"2
+7U " (
I0
o7U o7Uo/4"6&
"
%!+0<"*( * 0<"5 2 1""=
_ 0;:N$( &60'(! 01"!% "2 8  ,S2  4  6+ ,a &N  %!%9 V(*0 % *0F(* "!% 5a '&
"!
3"5 0'J0.R%I0'; , &
!+3"U "`0!- 17J<"
%! 0,<, 8 ' 6 E=_* &   5 ' EB *
% "*52 "2.'!+0,3","J07.YR-* 0<"5 &   h *J *7F | 7-W=\I &* 
% "
2ZI0'<05
:j7 *" [ *; *%"*` 7-3"*  &
&  0* 5 W( 0' &* @78<60`R+0)(* "!+
3"+Z&

%!+ '<'0,7 o7U o7U
C\= jneF.*
& 7
<078<" !+&
&* @7JV*1" *%  ,a &* "`0!- 1"""=
*4Z* 0<'0[ *J 7F $+- Qj*" B J '+7 6 7-+
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eey r{v6g{v
*_ &*  [ *J *7 *|+": 5  )( "!% &076#: 1'!+ "!E ,!% "2 <4   1"!%9*#- &
<'W

&
* !- 01"!%9*#- &60  ,d807.YR-*I0W , EB' " E=\ 52Z*I0'<'0
 0!-2 " 2"
+
5* 74&60E{RQ'*&  @74&074"
2Z 0<05|h *J *7F |I7-<'5 &*  
  EB " E=
rYy x{v$6uGy q \y vy XXgqYg6$u|
kj" '&&* 07* , <"  7 &* W 0"2  "`<, 4  6+  5" <  "*&* < 7(!+0? 2 < 2
 
CEU "CW2*-!+087 4  6+ <'%!% 
6#+0!-2 &* @78<W'4k 2( 7ch !  7='
<
<  "*&* M4&60E4&
25(
0,<4  6 W(*0"!<*#+'&` 0\U 0J0.YR-*I0'8&078CW2-! 0'J< " %'!% 0
<  &a!+ 1!% " 2
 
%!% "*( I0<5 2 1=
 ('ZJ<&*!+' "!E 080.YR-*I0'h
 7M ,' 7B 
EU 6  1"' +W( 
05
w
&*!+' '&
&  @8<5 ,!% "2 <&07
  <'0,1"!+9*#- &0\=_ 5!+17 "!- < <<,%!-&`:!%
 &
0
-!+ '<' , 5!% 2 <'4 '  1"!%9*#- & W 0,*?  W( !+ 5 5!% 2 <&07
 7 <0,1"!+9*#- &60\=
_* ,!- 2 <&07
  <'0 * "!- <","(! 01"!% "2  0%!+0Wa '&*  <'05 2,( 0'* . 0.
%*!\ 0'
<*+ "  J<&
0 6-!:*& &  @4"* ,!%'&
*+ E=/6 0+ 2,. Z"8 17 #- &
3)
0Wa M
&* 
<O&0E 7 <'0 *&*   0'w( "!+ )  1f' !+
0,3")(
0<' 24043""!%!

* 2,.' "!O=

 ('ZJ<&*!+' "!E 5!% "2 <&07


  <'0,1"!%9*#- &0EU
 5  
"!I+ <:! 0,<'"
 *"! *0
w
*
7
<05 2Z*I0'<'0W''EF+7 8+7<,G , 7B' "+
\=\ 52Z* 0<0I0"2 5
eR%"2( !"<")j+E '8 7&60240Wf' &0, "!+12"
 0\=\ }F+7 '8 4
 ]* <
&0"20Wa R+0<'"60".R% 0  ,&*!+ <'0)(*0"!\ , 7B' 
\=
_  W !%&  6<'W4Z*+0<0J<",G , 7B' *"+

 '3"*%7l
~6uht Xe`t p|zXx t {$y et eey r{v6g{v
rYy xq`xex
gq6X~YXFgq6`X |q6X~YXFg6`X
kj5*
)(* "!+ , ]* '<" !j0'<'04 "60".R%I0  <" &
" !- 01!%9*#- &0,& !+' <'0}( 0!"
  EB " E=
kj5  W(* "!%  ]* < !\' 5!% 2 <&07
  <'0,1"!+9*#- &05   *"! 
0
' !I-* "g=
Ey vy 6' q g6$uDev Ey vYFy X qY 6Iu|
kj5*
)(* "!+ 5!%'&*(*"!% !E60.YR%I0h J
E |I:<
 ,' EB *

eR%"2( !- V* <0\=\ 52Z* 0'<'0*5 * &60E4 2Z*I0<'0,*Qj  B J '+7 6 :


<[ *J *F |+-(* !%  eR:*6% !\ 5 0& "  V '&* @8<"5 W(
0'* &  @8<"8 ' 6 E=
  %    (   &      % )       

g   !I+ "!E"* 5!+ 2 1!%9 #: &


<%!+0<"55 " 5 ,a &
' EU
M8&607
 '&*
 247+U
&
<" 5*0<"5 0'J0".R%I0'J<* ,!- 2 1"!%9*#- &
 "2.' Z4+9T ' *0''='i *M4 " 1 
&0  '&*7 &* 8&  "*<0)80.R%I0 &07  !I+8 */=_
0';07.R%* 0T ' *08 
YR-*I0'J!+*<"!- V '&  @=_ 0( !%9"2*-! 08<, 0'J0.YR-*I0'T ' *0*0W(''<'78
!
240'< #: &
<'08 52"*043"5 &
(* &* <" <,&
0"!:!%(
0E
< 7+5a *M  <0* &
&* 07* <
(&* #: &
2+ 7 8<',3"607.YR-*I0,6%Z8 ' *0\=
_ 080.YR-* 0',F+7 8 ,(*'<'7J !&0"25(  <0'= B02,(  !\'5j+7 8+" 0
&0 ' ! + Z"`M8 I0'<'0'J 8  & %!+0'8"* 4# 0!-2 ,298 #- &  "
 )( !+ ,
!+7
<"!- V '<'0E=*B0"25(  "!E 0'J0".R%I0',j+ 8 6 95!+'&02*<' '<'0,&0"20,"
f' % 240
(*  0, 
 8<Wa* '&
"!- 0 '  !O='\2XR%0"!7&602,(  !0 0W 0J0.YR%I0',j+7 8 7
   !I+ <'08<
%!+0<07.YR%I0', 

4Z* 0'<0}j+ ' 8 7 7 , 


rYy xG~6uGey v6g
&0"25(  5 8#:* }j% '8 " 
0'&* <' &076+07.YR-* 0&*!%' <0M8&
'& a 7 <'0)'

&
* !- 01"!%9*#- &60,&0"25(  <0\=
_ 08&
0*&
7( 0J<" E' 'M;' ,  2,( 2
 787 &* 

8%"'4+ Q=`h. XR%0W(*0'<"240'T "!E 0J<'02Z* 0'<0J<", &   
8%"'4+ 3
5!%" '&  0 "4&
0
I0'8&607 & 7(I0'=
_  W !%&  6<'W4Z*+0<0J<", 7*"8+4+
8%"'4+  '(*!+&   W  <" W(* "!% & !+ !/'
&
* "!: 0,1"!+9*#- &60
 *&*  M  <'0)4 "U* OUM5j"G, E 7 Q= 7*"8+"'4+ \(!+0(*0"!+&* 0E 4  !- 0
2Z* 0'<0;M4&
25( 08&
02*(* !- *;.*&* 
l
e6 veq6Gy Yu`y vex6g
Devuelve una bandera indicando si el nodo forma parte de un escenario grfico que ha sido
compilado.

e6 veq6Gy Xey rv6g


w*  *5"* 5. "*<'!+ ,3,
< &
** 0<04#+0"!-2 W(* "!I+<","4 & * "!- 01!%9*#- &0
' *0E=

.*
"!$  3W*05a *M"(* 0,2,(*V* "!7 5!%"*<'!- V* !%",  1* <W !+'& 
+"!- 0!%'=' !+" <"!- V* <'0!" *  ,2,( *V , 8#:'*&  07* "!7.*&* 56#- I0
&** 7
<0)' ,!% "2 1"!%9*#- &
3"&07- 7 W'eR%"2( "!"<"h * 8 ' *4 ' *0'
 *"!  04 ' !I-* "g='cB* 4 *V4 "!:!+ *&
<07U* !+ <""!- V <07!"  S!%' "  V 5 
07(*"!% &* 07*20%!+ '< '8"46 1 "
+5   <0\l
ey v6 $$vX

ge~vXYXFxevGv6{|gq`xeq

$v$y ~y 6wxev{q y xXqee|veq6
veq6 y {qG~6uGY6 gquy v6{gX
$gqXrXy ve{qGv6vX{~{v6q` y 6||y ~
gv6Xxev`Iy {qh XF6Op$verXy Xq6 ve

Xy uBXy vX{q Yq6 y xXq

*_ J*&
&* 07*J 7
 !- 0!%8 ?"(  &
".* 7 &607
%!:&&* @8<WJ* &*   0W' !+0 ' !I% 
 '* W!+ "2 <'&
0
+7 <01!%9 #- &60\=_ & !%' '&& @78<', 5!% "2 460".R%% 0<5 
 1 "
 J*'&&* 07*=
 *  & $       #              + ,          

*(!+01!% 2   7PQN$( &60,"2,( V* < #:   <05" )*  &* 
3*, ? % " <5
&* 
 O=6eR%2,( 0 iw"  0'
*  7 7= R%  * &* 
<" #:  <' W( "!+ *?
%"*<"!E
&* 
 O=_ 0(! 0'1!% 2 J
*  7H( 0'<!QN 4 & !- . ! 
&0"20, (  & '&* 07 U'(*"!+0
*
!('( *  0'J0*#-!%'& ," 4# 07!-2 5249J *&   <W(! 0<&  !E*  (  & '&* @78&0E
"
+ * '=
_* &*  W(!- *&* (* 6<5"(!+0'1!+ 24  *  ,H 0!-2  247+<" #: *524ZI0<'0)( !%
&0 6-!: !E ,!+ "2 <&60E
  <'01!+9*#- &0\=F4"6`R%"2( 0Dw '
*'Ew<" & a*0W2ZI0<0
6+9<" #:  <0,&
0"240 +'  *"8+7 =*_ 0(*  0';<"5 5!+'&
  *&*    
 2,( "2
 478"&607 %!-&6I0"!7<'5 &* 
 ' **'Ew\=*( 
0n*U &*!+ !\
0.YR-*I0)h7 EhU
 &6025(  7 5N|* 4='*( 
0CEU &*!+ !/'40".R-I0
  EB " 7U  ,a &
 ,gN|* Dn'n=F (* 
0C 7U(*"! 
0E* "  V* "!"e0.YR-*I0
  EB " 7U  ,!% "  V* " ,gN| ' Dn6E=F
(*  0,U*&60E
%!:' !\ 5!+ 24 <"
&0
+ <'0EU
 5!% "  V*  ,  "24 '<  "
2ZI0<0 +' ' *"8+"''+=**(* 
0\U
&0"25(  "!E ,!% 2 <'&
07
  <'0,1"!+9*#- &0EU
 Wa* '&
7 5N|* E= " 2+" (*  0,U
   !I+ !E 5!% 2 <&07   <0,1"!%9*#- &60,4"60".R%I0  <'"
 , h 
EU
 
&0"25(   5N$ ' Dn6El
Fragmento de cdigo 1-1. La clase HelloJava3D

tX`e y ~~ qXGv Yqrq`z6"qvXsv6Xx `e v`


teee y ~w"v6 e{qrYq`zq6g
zt
Yv$q 6$$Xv{D*6gx`v` {q 6{|g$-
7q6{rqXz64~q6YrYqXYz[v{)Eq`YrYqeYz`7$`e %
t
qex`x6g+v6{gv6gQ~q{rqXYz6"%
t
t
t
gq~jg6XjY~vvBG~Y|veqv ~v6Xv`Fgq6eX|%
Y~vvt ~6uGey v6g-
 t
 t
t   y uGe v7ey rYv6YvBy FqG7`YrYvey v6X~v[$y y ~{ qX{
  

e t y uGe v`y rv6{vXy uGX vYvY y u` v7ey rYv`|Yv`|~q`YrYqez`"%


t
zt 6ey wuwrYvX$vjEy vYF q g6IuXqe~YqB`y 6{j$Xv
t  6Op|ve~wy F$vY~v6Xv~{q6XvwrXy v/vex
t

t Xy uGe vEt ev Ey v{jy X
 qX 6$uGg%t {v$6uGy q \y vYFy Xgq66$u|%
t
t Xy uGe vEt qexex
|q6~YeFgq6eeY~v6ve%
 t  6vxX v Yqrq`zqBg~Y|$~6g
*( 
0<"+ 
7 &   5!+'& J&!+ !\ 5!% 2 <&07
 7 <01!%9 #- &60\=/6+ ,!+ "2
 & !+ 4!% 127
 0<&@'<" 1'0n6K-CE=F! 07. ". 2
  ' 5 5!+ 2 <&60E+ <0
1!%9 #: &0529J
7 &*   W(
0' .' 7=*G07% "580.R%I01"!-9 #- &60,6+9*% &60EU"GE %[E=
  6 95 0'&
  V* <'05460!- 18<"6* 6+2 <'&0'0!+<* < J<"  ! 
0  !I% |=
G07 5 0& "  V '&  @JM807!-  '&* @78<" <" J<"5 <" !+&
&* @78<5 4   <'6&*.*0EU "6&*.0
(* "!%&
&0205"!+&6+97
17 0,&  "*<'0,!%"*<!- V* <'0E='_ 5 24 '1'743"5280'%!% !-96+
(!+01!% 2 5 W(*0<"20'T "! W7 1!% Dn6Kn`C\l
Fragmento de cdigo 1-2. Mtodo createSceneGraph de la clase HelloJava3D

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|


 \gv`qvw$Yvh|Xe$vBegqY~j6gqe
t
zt |q6~XFg6ew6Lp eXhXv{Dgq6~YXF|6eeg-
t
t  
E|veqgvGqy uGe vwXXq`vh veq
`xXv
YqexXx[y `jIYvG{~v6vG6gq6``t
t  
76 6|\evhy FqB{rYv6ey v`X~vh'$y y ~Y q{
t 6Op `It qexex`\ey x6$vW76 6|\XXv6  t $-
 t
gv|e$`Lp `Y
 t
 v6xG~Ygveqgv ~vvejgq6eGujv$XxBY v` e{qXrYqez"q
  t
e t  
v6Xx6~ qeGv6 e{qrYq`zq
_* &*  }G" ' *7j6+9<"!-  < <8('( E(*"!+0," (! 01"!% "2 5('<
eR%'&   ! 
&
0"20W* , (  &
'&  @4&0 *0<"5 &  

 8 +E=_ &* 
8(( *
 5 * &60240,&*  5. *W(* "!% 5a '&!E29T#+9&*   
&*!- %!+ <W',(! 01!% 2 
*  E
3" eR%'&  + 7"  "
+ * E = 4" 7+")(!+07( 0"!+&* 0E* 5"2 !+&604db *+ * 
(* "!+ W4 ('( E(*"!-2 % 
<0,3"" "(( *"
eR%'&  +&60205"*  7(  &
&* @7='
 "2 ]*0<"5 4 "
+ " <'5  7(  &
&* @7!+    ,(*'&  #- & " &07
%!:&&* @7

<, &   
4 +7='!+ 1"2"
 0<,B@'< 10n`KQ,2%!% "
*0,<5 &   
4"
7+","Ww ' 'Ew\ %*\=
_  W !%&  6<',G0E
%!:&` 0"!%J<
" 7+"
(* '3"+7l
~uBt Xe6t p$zx t {Iy Xt qXe vY
4" 7+",&*!+ 5' 7('( "'  7(  &
&* @7='cB* &* *<"!:  < <4(( E(*0<7!QN

 *"!E"2ZI0<0}"I35  "2 "&607


-!-&6 0"! 4 +E= 8" +*? % 
<"
p|qrYq
t q\It gq6uwv5 2,( "2% [p|qXrYqt q
t eeXq`` v
UYp|qrYq t q6`e vXIt e` v |eUM
p|qrYq
t qe` vIt `e vXg76{gvs%=_* &  

 4 +4G0(
M'!- 1a
  n6'Kn''<' *#
/0'` 7V*!E2 " gl R%*# H '&*2E= &0"2  a
$:(l mIm$h[= '&*2E= &0"2;m R-  m =
6q y gq6ujv6 p|qrYq
t q6e` vIt `e vq6ee v y {XFy xYI`y
Xv6y 6{
[!+ 580.R%I0 " +",3eR%'&*
+ 5"8 7('( "&0240W" , "(  & '&* @7=
 "!+9"2%!+0''l


applet - el constructor de una clase derivada de Applet. MainFrame proporciona un


marco AWT para este applet.
width - la anchura de la ventana en pixels
height - la altura de la ventana en pixels

Fragmento de cdigo 1-3. Mtodo Main() de HelloJava3Da Invoca a MainFrame

t6vw y Gq6 Y|ey gBvh$ejqeFq6jqe` y ~qX$y 6


t 6qe\v qeqjq6ee vY

zt
teee y ~qX|y ~/rY6y xBuwq6y e $$y   6q6ge{
t gqujvj$gqujvB[v{  q6y  gqujv6$vv Yqrq`zq6g% -

t  v6xGY ujqy Iujv|Xex*v X{qXrYq6z6qe
_ 0;%!%T#-!+ '1"2 0'J<,&@< 1'0, 7
 !- 0"!% n`K{n*U7neK-CEUM)n`KQ7#+0!-2 ',(!+01!% 2
 ,d&6072,( I0,&* 7
<0
W*
7 J 
 7 &*  2,( 0"!I7 <"&* '<' '=eB3"N
( 0'<"240T "!E J
7
 *&   2( 0!I\*&  !- '(* "!% &072(  !\ &   
w  *EGE=_* 8&* 
2498&
0"2,''2
 W  < 478
*  7*"*&*
%!% "
 0'( '3 Gp$qrYqs6t uwvex6y qt p|zex U
0p$qYrqs`t rYv`~ujq|
=w8 ,XR-25( 07U 
@" 0W &*  <
 %   < <)B7 -[' "*&*7%!- 74*( 3"*%~uBt Yet p$zext {$y et eveujvYI =

G07
*&
 "27 7U W24 M 0!QN <"5 0'(!+01"!% 2 J  7P-  7 J  7 &* 
,*IE240%!+ < 84"*7!+ 172
I0,<',B@'< 1'0 neK%W&07 *?*&
7( &* @74<WG %'E=
Fragmento de cdigo 1-4. Sentencias Import para HelloJava3Da

ty u6 pgqXrYq


t q6ee v t ee v
ty u6 pgqXrYq
t qYE t *`|xev6IYq 6{
zty u6 pgqXrYq
t qYE t gqujv

ty u6 pgqXrYq


t qYE t vrv`{ t O
ty u6 ~6uht e`t p|zex
t {$y et q`e` v t  qy gq6uwv

ty u6 ~6uht e`t p|zex


t {$y et Xey rYv`|{vt O
ty u6 ~6uht e`t p|zex
t {$y et Xve6uwv| t  6|\`Yv

 ty u6 pgqXrYqXs`t uwvexy q


t p$zXx
t O
 ty u6 pgqXrYqXs`t rYv`~YuwqY$6t O
F4" (! 0'1!% "2 <"eR%2,( 0G '
*7w\ %*EU
@ 0  -f 0W80.YR-* 017!+9 #: &0,
* 5f &
5 0& "  V '&* @"='F 4#- 1!% n`K{n'n8(*0<""240'T *!"6
&
7* "!- 01!%9 #- &60
!+' + "
 7l

02,(  240'8*(!+0'1!% "2 &60E4&602  <'0p|qrqe~jv` e{qXrYqez"qt pgqXrYq*=e 0,XR-&* + 20'


G
&0"6&0"2 7
<0El{pgqXrqhv` XYqrqez6q =_ 5 2 '1,(!+0'<&  <' )( 0!7*(!+0'1"!- 2
w  *Ew
W(*'<4 !E" ) 1"!+ neK{n`C\=

G0240)*0
,*?'(  &
&
< ,gN|*' <&@'< 1'0,<'"6eR%"2,( 0D ' *'7w7U 4 < 
.9 &
J<","  "2,. !\,(!+0'1"!% "2 
*  E<"."!QN 74+ "!&* "!+ a .' 7
<0W N <'0
"6eR%"2,( 0\=_ * 1"' % '&&* @7,(!%
7+ & '<' W' <5 8&*  * <" 874
(!+01!% 2 E=
           '        ,          

 "!+ , "] < !\'( 0&


0<"
  < 2  0<"X[

*  7PM4"6eR%"25( 0w '
*7w
'3""N(!%*+ "20" *
07(
 ;<5 8&   8<X
 S* < 8
w  *EwE=
[  Wj+" 8 
_ 080.YR-* 0'J<6 - ( 0 5 * ( !% 4# 0!-2 !E &7 !- 0'J1"!-9 #- &60'=_*08eR%"2,( "!%
<)w+ '8 7'407 5!+ 7N V4<'5 0'J'.*K:1"!%9*#- &60''=_
0'80".R% 0',j+ 8 74
0 0'
f &60'83"5('<""8 "!\a' R%0J<, 0J0.YR-* 0, " E=_
0'J0".R% 0,j% '8 "
(<7;+*!  "!- 0'a R+0''=_
0'a R+0'J<'5807.YR-*I0j+7 '8 ,(<""8*!0%!+0'
0.YR-*I0'4 "40)'O=
G07
-!-&`+0"!/( 0!< #%'&` 0<}j+7 8 7
gq6~YXF|``eg
_ 04eR%"2( !+8<}j+ 8 78 !$ "4&0"240)!+ N V(* "!+ 5 4!- 2 J<"" &
"* "!: 0
1!%9 #: &07 0';0.R%* 0,j+ '8 "J
07 0f &60'J0.R%I0'83"5('*'<'7  
"!I "!  7
8&
07{RQ
I0,<'0".R%I0',  \=
[  ,h"
*'
E
_* &*  5[
*'
E<"!- * <5 &   Wh
8<'"Xjb=eh 2" 0"80.R%I0
B7 E<'". !\!%*#%!+7 &* <'0,7 5!+ "2 <'4 '  1!%9 #- & <" &
" !- 01!+9*#- &0\=
G07
-!-&`+0"!<Wh

7
q6YrYqeYz`7|F|q`e`y ~6{$y X|qY$y j6gqe`y ~Y~6{$y egq|y `
G07
-!- M*5  &* "  V 5* 007.YR-* 0Wh
*'
E3"*,"`  7H(<W!+ <"!- V* !
<  <'0)'40.YR-*I0)4+7' *G7
% '+% 7J 9  <0\=/'*  ? +"  @EJ<"5 &   
B7J<Xwdbj=

[  F+*` :4E
_ 080.YR-* 0'8F+7 6 7-47S!%"(!+*"
+ J%!%  6# 0!-2 '&  07*8<1''0"2*-!QN J7&
0240
* %!+ * &* @E80W ,! 0' '&  @"=/6 0J0.R%I0' 0!-2  27+
@ 0 5* "
&*!+' '&
&  @8<5"80.R%I05+7 6 :8 7=F!- 24"!+07U 
&07 %!-
M,60.R%I0
%*`+-7U( 0 .' "247+<"
<5* &02,.' * &* @E8<0.R%I0'Jj+*6 -E[=
_1'0*&0E
%!- M*"`0.YR-* 0j+*`+-4 7'*
 <0,60".R%I0,F+7 6 7-4E=
G07
-!-&`+0"!/( 0!/*#+&6 0<"j+*6 -E
c 80.R%I0,<'-!% " `#%0"!-2 '&  @817 !+ "  V* <'0 5!+7(!%*
 5 
 "!Q* "2
+&0240W"
B
2 *-!- V8<4'?
5<'0. J<)("I0#- 0+ 
 7=_* 5!%(!+*"
+ &* @2 * 29% &
 52XR%0"!
# 0!-2 7='cB80.R%I0,F+7 6 7-7H 0
5* 7"4 & " !- 017!+9*#- &0E= kjW  W(* "!%
(&* #: &
!\ %!+ 
6# 0!:2 &* @78<W'40.YR% 0,F+7*` 7-8 ""=
gq6|6$uwz6g
G07
-!- M*5"80.R%* 0,F+7 6 :4E3"*5!%7(!+*"
+ 5 52 *%!- V8<'5 <"% <' '< 
0W
%!+  `#+0!-2 &* @7 =
c 80.R%I0,F+7 6 7-7(<,!-"('!+*
 "!\" %!% * &* @7U" W! 0% '&* @7'U'
B

&
 <'07U*0W* &02.* &* @78<Z6% = [ "*<0*'( '&* #- & 5* 5!+0+ &* @7'U
9 1 0* ?"(!% ,"!% <" 7 =ch* 5!+0 '&* @E4&0"25(  !
 }#"+7 *''='cB*
# 0!-2 <'(*&* #- & "!97
17 08  !\ &07 6% "
+  q$6t = -!+ 4# 0"!:2 
(&* #: &
!\ 0'  " 0!+8< !+'&`+ 2
 E=e[ 1"* 4 "('! 0? 24 '&* 07*; 07l% $j8oE= '7U
'&o $j)n*= UM)n6'%o $j4E= ne/=
_  W "!+&  6<'W4Z*+0<0J<"j+*6 -E
_ 080.YR-* 0'8F+7 6 7-47S!%"(!+*"
+ J%!%  6# 0!-2 '&  07*8102Z*%!: &
8&0"240)'
! 0 '&  @7U%!%  '&  @JM &
 <0E= F+7 6 7-7* <'5 ( 0& 8&* 
435*0

*
78<" !+&6+ "2%7'
&
 !: 01"!%9*#- &0\=_ ;%!%  `# 0!:2 &* 0E*!+7(!%
7+ < 
( 0!0.R%* 08j+*`+-E ,* "(* "!% & !- !"0".R%I0'8F+7 6 7-4 3"*` 
*
744 & * !- 081!%9 #: &0=
rYy xB|Y '7|xXe` vq ve
kj" '&&* 07* "X  " 0!"<6+ %!% " 6#+0"!-2 '&  @ 5' 5!+0+ &* @744&07
-!+ <'"` % <'0<"

+! " 0`R
0.!%eR%K+?"='69"*1"' 0*'( '&  #- &
!+ '<" "=
rYy xB|Y (7|xXe` vq ve
kj" '&&* 07* "X  " 0!"<6+ %!% " 6#+0"!-2 '&  @ 5' 5!+0+ &* @744&07
-!+ <'"` % <'0<"
!+" 0`R
0.!%eR%K%M='69"*1"' 0*'( '&  #- &
!+ '<" "=
rYy xB|Y )|xe6e` vGq6 ve
kj" '&&* 07* "X  " 0!"<6+ %!% " 6#+0"!:2 '&  @ 5' 5!+0+ &* @7"4&07
-!+ <'"` % <'0<"
!+" 0`R
0.!%eR%K%V='69"*1"' 0*'( '&  #- &
!+ '<" "=
rYy x{v|"v`~6|zY`|gq6 qgvX
kj" '&&* 07* "X  " 0!%!+ 7
 '&  07* 6<6+ ,2 %!: V4 "e *  0!"<*(* "!%92%!+0G I7+QUM
  &
&* 0 5 0'J0%!+08&
02,( 07*
+J<"5 524 %!- V4&60240Z %!% 
6#+0!:2 &* @7;#:*!+
* 52 *%!: V <Z"
% & E=
[  F+*` :8 7
G0240W" .&  *<W &* 
54 7"U* 08eR%"2( "!%;<"F+7 6 7-8 "8 5  
 & !%' &
&* @EJ<" & " !- 0J17!+9 #: &0;MJ% ""' &60 '&
&  @78<07.YR-*I0' 0<0'
&0"20Wa R+0''=_
0'J0.R%I08+7 6 :8 7&0
% "*"J%!% 7
6# 0!:2 &* 0E 'J1''0"2Z%!- &

&0"20%!+ * &* 07*;M! 0+ &* 07 =_* 4-!% " `#%0"!-2 '&  @ 0!:2  2
+
,&*!+' 7"
0.YR-*I0,j+*`+-7U 3*)
0580.R%I0<" &7* "!- 01!%9 #: &0E=
G07
-!-&`+0"!%J<F% `+-8 "
_ 080.YR-* 0'8F+7 6%7-8 "8
078&07+*'<0!%J<%!+ 7
6# 0!:2 &* 0E '8"4

&
* !- 01"!%9*#- &60\=
gq6|6$uwF|`eeg
G07
-!- M*5  &* "  V 58j+*6 -8 7*
 <'0)* , <'7- < <<
%!+  `#+0!-2 &* @7=
gq6|6$uwF|`eeggq6Y|6$uz6;
G07
-!- M*5  &* "  V 58j+*6 -8 74<
<'W80.YR-*+0j+*6 -4EH(*  <'0El
 "!+9"2%!+0''l

t1 - el objeto transform3D

*_ 4-!% " `#%0"!-2 '&  @4&


0
+ <" "J07.YR-* 0j+*`+-E &07(  5"J07.YR-* 0
%*`+-8 "40,&   <'0 & !% +7 6 :8 "U
05*  <'0,"
2ZI0'<0
I+7 6 : =
4Z* 0'<0, $+7 6 7-+E<b!% 
6#+0!-24! 07'(
rYy x{vgqYg6$u|*gq66Iuwz6J
kj" '&&* 07* "6&02(*07*+<"4-!+  `#+0"!:2 '&  @74<+F+7 6 :8 7 "X  " 0"!<'
 -!+ " `#+0!-2 '&  @(* * < 7=
 "!+9"2%!+0''l

t1 - la transformacin a copiar.

[
 4G I7+*
G +'* &   W2 * 29*% & 3 7*&*
%!% 4" (* '3"+p|qrYqXs`t rYv`~Yuwq|
(* "!+ ,(&* #: &
!\'; '&6I0"!\ *  <0-!+T   0"!+'J<'W('
I0#- 0 7 E=_*0'J0.YR-* 0
G 
5*
;#-!%'&*
 "27+5( !% (&* #- &
!"%!+ * &* 0E 8<'102%!QN =_*0
0.YR-*I0'JB I7+\ 0 5  7J< !+'&6+ 2+7 &60E
%!-&
&  @78<5"4 &* "!- 0
1!%9 #: &0E= kj5  ( !% (&* #: &
!\ %!+ * &* 07 'U
(!$#: &*  0!-2  'U40-!+ 
&0 =
G07
-!-&`+0"!%J<G +
c ; &6 0!"<," 2
 083"!+7(!% 
 <0)( 0!\('
I0'#: 0 "
+8<')(!-&*  @7
B
 "*&    5(* "!+ , 8&
00!+<"" <" T?"UMUMJV"=
ve~g`$z{$g
G07
-!- M*5  &* "  V 5JB I 7+*E oU o7U o=
ve~g`$z{$ $ eqXXs6| eqY | eqX`{
G07
-!- M*5  &* "  V 5JB I 7+*7<'<5 4&60'0! <"" < ?"U
M'U
V4'( '&* #- & <' =
[  ,B" 7%[*

G
7 7%[', &*  <5 %   < <53" *&*
%!% 4" (* '3"+
~6uht Xe6t p$zx
t Iy et `ve`uwv$ 3<*#- *5 102%!QN M4&0" 0"!%J<5"8&*. 05&
"
%!% <0,4"
0!- 1JM4&078<" #+"!%"
+4&0 0"!%48& < & !+ E='60.YR%I0)G7 7%[',8&*'.0,3"
% "*C52Z%!+0';<" !- 6+ 7= k '4&*.0 ! 0+ "!  %f* 78"60"!- 1'7 &0240,7
w  *EwU
 4 *"!+95 &
!% 5! 0`R% <'
<5 W 0&
  V '&* @7J<4  * @*0"2 * |=_ 0
0%! 0'J&
0 0!%J
074 V'U24 17
 U* 2 "!-   07U ! <M4&  ""=
G07
-!-&`+0"!%J<WG7 -['
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
c B7 -['807.YR-*I0 ' * "U'4&.0,&07'4&
0" 0"!"< #%!%%74& '<' & !% E=
B
G7 7%[', ? +  <'5 ,&* 
5Eh( 0"!\ 0  07U"*0<0Wa*0`R% E=G7 7%['
T#+9&* 6<,* "!&* "*<'0 5(*07*R:"I0, W'" *"! 
04 ' ! % "g=
6 6|\ev6g
G07
-!- M*5"4& . 0,<&0" 0"!<"e+ 2 7]
0}(
07!"<" #%&6I0\=/07!"<" #+'&6I07U'' *3'  +9
 % < , Dn;2%!+0<& <" 5*0<"5 0'JeR%J<''
<',60!- 1U!+' + "*<0)'4&.0,3"
6+9&
7%!% <'0,7460"!- 1'7JM;-  CW24-! 0'8< " I0EU
<, "*&*a0M8<W(! 0#-" <'0E=
6 6|\ev6gx```e vY~q vX
G07
-!- M*5"4& . 0,<&0" 0"!7 &  <0W(*0"!Ee   0!'( '&  #- &
<0\=` "2 ] 0)( 0"!
< #%'&6I0,8CW2*%!+08<'W <'0E=' G %[W!+*' + "
 % * 3 4"  &
" 7U
 & " 7U
 &
 EM K-
& " U K- & " 7U
K:
&
 =
#         "  

c *  2( 5!+0 &* @78<6&*'. 0)(<5a '&


"!3 4 * 529J<5" < 8&
!+ =F
B
(!- 2!(  08&*!%' "!E %!+  `#+0!-2 &* @74<' ' < W  *<0)40".R%I0,F+7 6 7-4E=
!+ 1247 0<,B@'< 1'0n`KQ5 *&60!Q( 0!+ W80.R-* 0j+*` -8 78"6 &7* "!- 0
1!%9 #: &0W(* !- ,!+0 !"6&*'.*0
0.'!%"6eR%4?=j!- 24!+0 & !%' 5 %!+ 7
6# 07!:2 &* @74<'
! 0 '&  @7 *  <0"60".R-I0}+  <F+*`+%E=\6 0.YR-*I0*& !%' ," 5gN|  7=
_* ,!%0 '&  @78 ,(*'&* #- & 5*  <0, 24ZI0<0}%'+ *[ /<'5 5N| ' ,7='F 0*&
J &*!%

"`0.YR-* 0j+*`+-8 7 ,N|* n`o)(* "!+ ,&0


 7*"!E -!+  `#+0"!:2 '&  @8<
! 0 '&  @7"=
j0'(* "!%92%! 04(*'&* #% &
 ,!+0 '&* @7"l XR-<5!% *0 *&* @7UM4"69 1 0<"
! 0 '&  @7"=eR%
"  1'
" '&
&  0  <'0,"
2Z 0<0, (!+0( '<'0\=9
17 0<W! 0% &* @7
8e * " 0!3**, W(* 
&
0"20, !+17'247 0E=G0"20,9"*1' 0<",!+0+ '&* @8 
(&* #: &
!+ < 7 'U*"X   0"!#
" ,.-W0
 /1,2<5' ,!+0 '&  @4&
0"25(  U*0"1"!- <0=
w('ZJ<&*!+' "!7"`0.R%* 0b!% 
6#+0"!:27hU'%  EU
 5  " &*!% '& &  @8<'"60.R%I0
b!%  `#+0"!:28! 07(XOj  N|* Dno='60".R%I0b!+ 7
6# 07!-2 W  ,""

&
* !- 01"!%9*#- &60\=jI0E &
8"60".R%I05XOj'  5a '&,3WB %[*  ,a R+0
gN| ' nn`=eS; *VU*60".R%I057XOj'Ea* '&
 57Lj  &0"240*,a' R+0 gN|* Dn`C'=
Fragmento de cdigo 1-5. Una Rotacin en la Rama de Contenido Grfico

tX`e y ~wgq~YXF|`ew~Y|veqXv ~v`Xv`Fgq6eeg

t \gveqgvj$vB|XX6e$XvBegq6~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t 
|YgqgvOp|ve~
qeF~ueYy gvw|gqYg6$ujq$y uwq$$y s

t gqYg6$uwzgqgvB[vYW*|q`g6$uz`7g%
t
gXgqYgv
t g 'E  q|t  t  xX-
 t
 t
  t)gqYg6$uwF|``jOp YgqvB[vYW*gqY6$uwjg6eeIgqve%
e t}6Lp Y|qv
t qexexe/Xy x`Iv)6 6$Eev6  t I%
t}6Lp XX t qexex`\ey x6g6Lp qgve%
ztgvX$XIw6Qp e
t  
v6Xx6~Y|vXqXv ~{v`v6Fgq6euwv|`x
_* ,!- 2 <&07
  <'0,1"!%9*#- &0, a0"!% 5 &*  M 5"80.R%* 0,F+7 6 :8 78"
&
2  0,<'"6 &
* "!- 0,1!%9 #: &05a &* "60.R%* 0)B 7%[\= B <' 5'*0<5 0'8& "2  0
< &
 !- 01!+9*#- &0,*&  !- 0\=60.YR%I0F+7 'J+48 f &0,3")(<
 !\a R+0<'W,  E=60".R%I0,+7 6 7-8 "8"
f &60,3"W(<"& 2. !\
 0&
  V* &* @7'U 0!-  &* @U 0"e+ 2 7] 0<5"J07.YR-* 04 ' * |=F46+&

0,"`0.YR-* 0
%*`+-8 "& "2.' , 0"!- "
 '&  @"=/07!"'('* 07U*60.YR-* 0)G7 -[',
*&  !- 0)(* "!% *'2  %!+ "!607.YR-*I0 ' * "g=
B3"N'( 0'<"20T "!\ 5 2 '1'7(!+0<"&  < W( 0!7"!+ 12
I0,<',B@'<" 1'0n`KQ7=

% ,"B' * 478"F+"*6 - 7*5'w" '


*7G

 !%&*7+"2
 W'40.R-*I0 ' * "6
%!+  < M8
5! 0+ 7U
0 ,!%0  0".!+<'0'8XR-=F
&** " 3 !7& 
0EU
 '(&* #- & 8<0';%!% 
6#+0!-2 '&* 07*J<" #%!%%( !% 5"J
@ 00.R%I0
' * "g=_ J<'0';%!+ 7
6# 07!-24 '&* 0E (<4&02. !  ' ,2 %!- VJ<
%!+  `#+0!-2 &* 07*;M4&07
 *"!  ,"8
@ 00.XR%I0,F+7 6I7-8 ""=/0'<"280'T "!
4eR%"2,( 0,!+ 127I0<"h@< 1'0n`KQ7=
F4" (! 0'1!% "2 iw"  0  '7B.= R% * *  &02,. 7J<0!+0 '&  0=*[!% !6+ 8<'0
! 0 '&  07*J 2  97  !+'3"' "!%&602,.  !<'0'80".R%I0'8F+7 6 :4E<5!+0 '&* @7"='
eR%"2( 0W!+0 ,&*.0
0.'!+5 0'8XR-T?M"=
kj,&*!+' 4<0'80".R%I08j+*`+-E[U
0
( 0!7& '<' 5!+0 &* @E N$  8M =_ !+0+ &* 0E*  <"  <"  J ,(*'&  #- &
(* "!% , 0
<'080.YR-* 0'8F+7 6 7-8 "  N|* 44M)n6o=_1'0W ! 0% &* 07*J &0"2,.' * 
2< +, 52' - (  &
&* @78<'5 080".R%I0'8F+7 6 7-4E N|* nn`='_ ,&0"2,. '&  @
<, J<0;%!%  `#+0!-2 & 07*J & "!+1' ,4"`0.R%* 0,F+7 6 :8 7 gN| ' neC'=
Fragmento de cdigo 1-6. Dos Transformaciones de Rotacin en HelloJava3Db

tX`e y ~wgq~YXF|`ew~Y|veqXv ~v`Xv`Fgq6eeg

t \gveqgvj$vB|XX6e$XvBX|q`X~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t 
|YgqgvOp|ve~
qeF~ueYy gvw|gqYg6$ujq$y uwq$$y s

t gqYg6$uwzgqgvB[vYW*|q`g6$uz`7g%
t gqYg6$uwzJvu XgqvB[vYWgq6Yg` uwz6g%
 t
gXgqYgv
t g 'E  q|t  t  xX-
 t
  t5|v`uG Y|qv
t gX (E  q$6t  t  xe%
e tgXgqYgv
t u` vu Xqv`%

t gqYg6$uwF|``jOp YgqvB[vYW*gqY6$uwjg6ee$|qve%
)
zt
t}6Lp Y|qv
t qexexe/Xy x`Iv)6 6$Eev6  t I%
t}6Lp XX t qexex`\ey x6g6Lp qgve%
tgvX$XIw6Qp e
b/ 
 0,!+ '1"2 0<",G@'< 1'0n`KQ&607240,"!+ 12
I0,<'&
@< 10neKQ)( 0'<!QN 
!+2,( *V "!7 "*7!+ 172
I0<,B@< 10neK:C\=F 7!+ 12"
 0<&@'< 1'0n`KQ
5* 7
w  *EG %*\=Xh3"N('<'4"*&0E-!+ "!7XR-2,( 0,&025( *I0\l
iw"  0'  '7B.= R% * *
F )7 1!+ n= KnX(*0'<"20' "!7"6
&
7 "!- 0,1"!-9 #- &60,&*!+' <'0,7Ww" " *7G7 %*E=
_* ,!- 2 <4 '  1"!%9*#- &
 52 *2 W(!+0'<*&* < W" 
*'Ew7U*3', 9
&0 6-!: <' )( 0!E" ,' EB * 4M!+(!- 
 '<' )(
07!E" 1!% "%!%  7=_ 5!+ 2
<&
07+ <'01!%9 #: &0 a 07!+ 5 *&  
M*W'4F%*` 7-4 ""4"6&
2
0<" &7 "!- 0
1!%9 #: &05a &* "`07.R%* 0)G7 7%[\=

_* , 2 18<5 8#: 1!% Dn`K{n`52,*6:!+ ,*G %[1 !+ <0<"'w" 'EG=

  $         - #     &      

 &
"* !: 0,1"!%9*#- &0,&07 6-!- <'0)( 0!\,(! 01"!% 2  *  ES( 0'<!ON 5 * ! *
< !+'&`+ 2
 )( "!% 5!% <"!- V "!O=
kG 42. !+1'07U 5!+7(!%
7% &* @7 0,2 M4 #- &  "
 E=
_* 8#: *? .   < <,&07 %!: <' <
%!+0<&
< 0".R%I0, &7* "!- 017!+9 #: &0 3"W 0 4  4
<  &  % !"46%4-
I07!- " /& !%' !%(!% 7 '& @8.K-0E(% 2 <"  *"!  04 ' !I-* "g=
 "!+ 52XR+0!% "! !+7 < 2  0<"5 5!+7
<"!- V '&* @8*5 * 5* ,!-(!% 
 '&  @29
*#- &* +<"  *"!  04 ' !I-* "g=
 ,% *5" 5!%(!%
7+ &* @E+!Q* )( !% ,"* 5 *"!  04 ' !I%* "`M 02ZI0<0'
(* "!+ Wa & !\ &60E *! * @"=i M8<'0'T# 0!-2 (* "!+ 5a '& !73""` 6 "2 
*  7Sa 1"
 &0 "!  @74<'5 5!%(!+*"
+ &* @7 
 !O* E=cB* 4# 0!-2 8&072(  !"I0<"  !+ 2 
1!%9 #: &
=_* 0%!% 4#+0!-2 ,   !I+ "!E"* ,!% "2 1!%9*#- &
" *"!  0 ' !I%* "*( "!%
< "!- 8 ' < E=
G, 7GE
I7 '
60".R%I0F+7 'J+;-  52Z 0<0,&6072,(  <'0!L=_ 2  <'05 +524Z 0'<'0 
&0  ! +5 5!+ 2 1!%9 #- & &0"25(  ,3,a *M8<". XR%0<"*w+ '8 " 5
!+7(!+*
 &* @E 
 !O <' *  ,<5 5!+ 24 1!+9 #: &
7=`G<"298<5 ,&6076 "! * @7U
!+7(!+*
 &* @E 
 !O )(
0<"!ON 07(
% 2 V* "! 
<"5' 0  !- 2 *"!% =
_* ( 0 .' J07(
% 2 V* '&  0**0*'(*&* #- & 44"G  [= k8"2. "!+10EU
*
(<1' 7* "!74 #- &* "&* <'4  "!- T# 0!-2 ='ch <'5 (*0 .' J07(
% 2 V* '&  0*4
&0"2,.' * !j+*6 -8 7*8&6074& "2  08< &7 !- 01!%9 #- &0E=/0"!EXR-2,( 07U 


&
* !- 01"!%9*#- &60% "*<0'J0.R%* 08j+*`+-8 7"* 5!%" '&  0,( '<"!-KLa' R+0
(<7J "!\!+7(!%
7
 <'0( 0!\80.R%I0,F+7
6 7-8 ""= %!+ W(
0' .'   <' <5
&0"2,.' * !0.YR-*+0*'E3"*% "" 5!%" &* @74+9% &
4#QN  &
E=EI0';% ( 0J<
07(% 2 V* &* 07 J 5a & ",( 0 .' 8&   <'0W 8&
"( &* < < 0 &07#- 1!- ""=
_* W7 17!+ n`K{n`)(!% 
+ 5* 5!%(!%
7+ &* @E8&07 & "(
- 6<'5 &0 !+ @74 ,"*
!+7(!+*
 &* @E294 #: &*  E='6 &* "!- 01!%9 #: &0<  <'05 V 3 ! <058&0"25(  <'0
MJ%!+ 
6#+0!-2 <0, 5!%(!+ 
+ &* @7 
 "!: W240%!% < 4"
 <'0,<'!+&a 0\=_ 4#- 1!-


@" 05!%(!% 
 ,"6&0&
"(
 0<5!+7(!% % &* @7 +!Q* U' 0,&0240 *  
!+  24%5 0Wa* '&
E=

B ""
c * 8 V43"," 5!% "2 1!+9*#- &
"2,( *V  4   !"0,8&02,(  < "6* 6 2 <
B
!+7
<"!- V '<'0 *  ,S &07  !I+ 5" 5!%7(!%
7+ &* @E 
 !Q* 529'8 #: &*  E=F
*#+&6I0)29 2,( 0!I 
 <6+ &60E6 !+* @ ,2eR+0!% <"
!+7
< 2 " I0<'
!+7
<"!- V '<'0E=
"! 0 2.' Z7J%  0%!+08*#+'&`+0'U"
0,<"  08T#- R- !"e * " 0!"<"4-!+  6# 0"!:2 '&  07*
M80%! 080.YR-* 044"6 &* "!- 017!+9 #: &0E=`2 0'83"(&* #- &
2
+, 0
(!+0(*0"!+&* 0E*204*(!+0'1"!% "2 U*+W*0+"*<"!%95 &
"( &* < '<<"& 2. "!E 0
  0"!+8<'5 0'J0.R%I0'8<'"6
&
7* "!- 01!%9 #- &60W" 4 *V43*, Z7;  0'=
iw M4& 
0'8435"('! 0'1!+ 24 )*&  + , & 7( '&* < <,<'& 2,.' !7
I0'T * " 0!%
<'(Z8<,3+Z"J ' *0=/0"!7XR-2,( 07U*&
"2. !7e   0!<W'40".XR%I0
%*`+-8 "& !%  " 2 '&  07*= "!+ ,3",I0*& <" 7U %!%  `#+0"!% "24&* @4<'.
( 0'<"!7& "2,. "!<'('*Z';<+ "!' '  7=_* 5   <'W( !%9"2%!+0'8 5 083**W(<"
'&&
<!QUM8<3"4# 07!-2 U  ,  "24 &
(* &* <" <';<"`0.YR-* 0\=
B < 5 8+8% +  W8&
07{R:" 0<"5. IJ<'&
( &* < '<E=_ 0'T * " 0!%J<"
6 0.' IJ<*+"!-2  43"&
( &* < <4*? 6+",( !+ ,60.YR%I0<"'(Z8<
&0"25(  "!- 00<< "!- 4  <' E=&0YR: 0<"& 7(* '&  <' '<'T  !QN &
0 &  7=

_  W !%&  6<'W4Z*+0<0J<", 7 *"8+4+


8%"'4+  '(*!+&   <'& 6&*  3"' "!&*  5 * '<' )(* "!% &*!+' "!\

&
* !- 01"!%9*#- &60EU &*  M *<0)4 "U**OU6M5j"G,*7* Q=
rYy xG~Y veq`$qq``y y $y ey g
6/0!-!%  .' <& 7( '&* <" <5(&* #- & <'0E=
e6 veq6wXvXg7qYq6`y y $y ey g
w'& "(*"!%  .' <& 7(*&* < <('&  #- &
<'0E=
rYy x{vgEq6Yqey y $y {
`y g
G076#- 1'!%  .' <& 7(* '&* < <,'(*&* #- & <0\=
0240,eR%"2,( 0EU( !- 5(*0<"!\ '"!7e * " 0!"<"5 %!+ 
6#+0!-2 '&* @7!+7(!%*"
+ < W( 0!\
G
0.YR-*I0,j+*`+-4 "U 6 &
"( '&  <' '<<"". &6% * "! * 7+J<"&
0"25(  !- 00< !- 
' < 7='w4# 0"!:2  2  !QU'( !+ )(
0<'!&
2,.' "!7e   0"!<5 %!+ 7
6# 0!:2 & @74""
0.YR-*I0,j+*`+-4 "U
4&
(* '&  <' '<< &!- .' !"%!+ " 6# 0"!Q24 '&* @78<"".
&0#- 1!+ "!  , "
+;<",&6025(  !: 00<' "!- 4 ' < \=g+"
 "!\a '&!E"4& 2. 07
0.YR-*I0 ' *0,0&02,(  <0)(* "!% "3, W(!+07( < <, '<'&  <" W 0 5a &60E6#: 1"'!% <'0
!+' + !+97* *?*& "(&* @7=
F  1 "
  &
&  @7"U 8  24 '&* 07*; &*!% 7 *  <'0W" %!% 7
6# 0!-2 &* @78<
! 0 '&  @743"4  "!QN &074"e% 2,( 0E= !- 3*, 0 ' W( 0 .' 7U "60.R%* 0
%*`--8 "4<'". *"!"&
(* '&* < <*8
7:9ww;
"<
=9%7>
" 3
'&`-  <  7+J<"3  &
0"25(  <'00*5 <'4 ' < 7=
_  W !: "`<h (*&  < <J<F+7 6 7-8 "
_* 8<'08& "( &* < <"   < 8 '3"N 0E f" & J<*#- <' ( 0!F+7 6 7-8 ""=
  5a!%'<' 4  !- 8&
( &* < <J<*8&   '8 "*&
6-! 0l8+"JM5j\=_*
&0#- 1!+ &* @E8<& 7(* &* < <"J W(<" " '&
&* 07 "!QU*"  2 "!"0W!+'&*(*"!% "!E * 7
<0
 0'2Z* 0'<'08< #- <0'4" 8+4Y% Q=
X 1?A@CB  ? D B FE

\(*&* #+ 3*,* 0<0j+*6 -8 7,(*!-2 + '&
&
<"!7 5 56# 0!-2 '&* @78<'
%!+  `#+0!-2 &* @74<'807.R%* 0E=

X 1?A@CB  ? D BG@ E E


\(*&* #- & 3"*,"  0'<'05+7 6 :8 7,(*!-2,   & !: .' !E 6#+0"!-2 '&  @4<'
%!+  `#+0!-2 &* @74<'807.R%* 0E=
*_ 8& "( &* < <";+ 2,. Z"4&
0
%!+0 4" &
& 0, 0%!+0'J '( '&`+0J<","80.R%I0
%*`+-8 "=_ 0J0.YR%I0'8F+7 6 7-8+""a!%<" "4&
0#- 1'!+ '&* @4<
&
"( &* < <"J<"**8&   8 *&
6-!+0l8+";MWj\=j8"6  1"' +5.' 03"<"
!+*#+!+*&  W( 0'<"240'T *! " 1* 8<, 8& "( &* < '<''=
_  W !%&  6<',B 7(* '&  <' '<'8<W8 7
%*`+-8 "a*"!+<" 4 * "!- 0'. IJ<&
(* '&  <' '<'8< 8&* 
4 *&%!+0=
X 1?A@CBe/ ` DE B E ' E 7
"!-2  3**5('*'< 4 ]* < !\a R+08 "*
0'<'0}8 74<'(ZJ<,3",6 Z&02,(  <'0
0 ' *0E=
X1 ?A@CBe/ ` D E B F E
"!-2  3**5('*'<  '!\ 4!- #+"!% &* 4 5 0a' R+0'J<'"*
0<'0)4 4<'(Z8<
3"+Z&0"25(  <0,0 ' *0E=
X1 ?A@CBe/ ` D E BG@ E E
"!-2  3**5('*'< 4 &*!- .' !E !+*#+!+*&* 8 5 0a' R+0'J<'"  0<'0)8 "4<'(Z
<3"6%Z&02,(  <'0,04 ' *0\=
 .       & $     &           &    /  

F8  ,hU" " &* *W(* "!+ ,(*'&* #- & "!  2 &* 07*J0W+!+ '&&* 0E 
&040.YR-* 0'T  * " ='6&02( 0!I+ 2 
I0)(<"&
"2.' "!' ' !I-* " 2"
+,&** " 3" "!
%!- .'
+0<"5807.YR%I0 ' * "g='cB(! 01"!% "2 <0"!(<"5* !  "!- 0'8&60725(
07!I "2 
I0'
(!%<" #:  <0'J05(*'&* #- & "!E"8&072(*0"! + 2 
 0}( "! 
0E "  V <0\=c[* 4 *V43
5a
(&* #: &
<'0W4&02,( 07!I "2 "
 0)(* "!% 5807.YR-I0 ' * "U*6*  "24  *  
'&`- "  V*   I029% & "2"
+5 W(
0' &* @7'U 0"!- 
 '&  @U*"6&0 0"!OU40-!+0'8 %!- . I08<
0.YR-*I0 '  "g=

*_ < % &* @74"


%!%  2 &* @5 
 !% '&
&  @J6&0"2,( 0!I 2 I058 &6%  <'0,
!+( , *( 
0<`% 2,( 00,7!%(+ ,  &6% ' <' <J<"
** !Q 0EU
!+(*&6% * "2"
+E=
B < 07.YR%I0 '  "`<  *"!  04 ' !I-* " ('*'<+"!"*(!+07( 0&
02(*0"!  "2 
I0
(!%<" #:  <0\='& a0EU80.YR-*+04 '  *(<" "*"! * "!- 0'8&
0"25(
07!I 2 I0''= "!%
(&* #: &
!\'4&02,( 0!I+ "2  0)( !% 5807.YR-*I0 ' * "U**(! 01!% 2 <'0!7&*!+ 0.YR-* 0'
3"'(&* #- 3""6&02(*0"!  "2 
I07U "] <",60".R%I0  * "6 "6 &7 !- 01!%9 #: &0M
a & 5 4!% #%"!%"*&* 8 (!+0( '<' 4"
%!%5 0'J0.R%I0J<"
&
 !: 01"!%9*#: &0M 0'
0.YR-*I0', O=
F "! 
0  !I% &6072&a 0'8&025(
0!I+ "2 "
I0'U 
)*&  + ,"  17 #- &
 
( 0+ &* <&
9" &* 0)( !+ &
" &* !\ 08&072(*0"! + 2 
 0= B0240 
I05 !+ <"!- V <'0!
&0"20,&0"25( 0"!I+ "2 7
I0W*
74 2 280)('! 0'& 
'<07!QU ( 0' .' 3"5 W(
0 *&* <
&
9 & ' 0,3"W*'&   "6&02(*0"! + 2 
 0<1!% <"
!+7
< 2 +0<""
!+7
<"!- V* <'0E=
 ,H(*"!:2   *(! 0'1!% 2 '<'0!E2 "XR- !E W(!+0.' "24 ,(&* #: &
" <'0W"gNg2  
( &* "*( "!% 3""6&02,( 0!I+ 2 
I0  1 5  1" !O='\ 5Ng2  
5  2 5!%1" @7
(!+01!% 2 '<' E=ch4&0"25(*0"!I 2 I0}*0, 9, &6% 0, 52"*083e *0" 2"4<
'&`-  &* @78<h *8F g+- +!+ '&
&  0&0E" 5!%'1" @('! 0'1" 2 '<' <'"
 L=F80%!+ (* " .!+ U *** < ""
.*0 3*4 "69"!:.*0"& "!QU*Z6+5*0,& 7=
_* & "!% &6 "!QN % &
<5!+'1" @(!+0'1!% 2 < Wa* '& 5298 #- &  "
   * * ,E4"
2 *XR%0<5 "! 
0'T  !I%  8&
02,*&a*08&
02,( 0!I 2 I0'=
cB0
 "g "Q 7 I7
0,<, 2,*&*a 8&* 
8<'&
0"25( 0"!I+ "2 7I0'(!%<" #- <0'8
" (* 3 &
0"!+ V @E8<  ,[= 6  '<'0," 4#-" &* @E8<% 2,(
0EU*"60".R%I0
"g :  I\2 " ( , 0( !%9"2*-!+08<'W40.R%* 0<"6
&
7 !- 01"!-9*#- &60\=0"!
eR%"2( 0EU( !% "j' % E "|
I:*" $7OU*2 ( 5 5! 0 '&  @4'(&* #- &6 <" 5(*0"!/'
%*`+-8 ",( "!+ , #%&6 "!\ 5! 0 &* @78<5 0'J0.R%I0'T  *  83
074 7 &
%!+0'
<j+*6 -8 7=
_*  1' 
 5  6+ '2!% 5 0(*  0876 '"  0'(* !% (&* #: &
!E*   2 &* @E8&0E
80.YR-*+0)
+":  I7O=_
0'8&  &0}(* 0'T# 0!:2 7* ,!-& *+ 5( !% &*!%' "!E
&0"25( 0"!I+ "2 7I0<"  2 &* @74&07 
 "!:(*0" &* @7"l

1. Crear un TransformGroup fuente.


Selecciona la capacidad ALLOW_TRANSFORM_WRITE.
2. Crear un objeto Alpha (funcin de tiempo en Java 3D)
Especifica los parmetros de tiempo para el alpha
3. Crear el objeto interpolator.
Tiene referencias con los objetos Alpha y TransformGroup.
Personalizar los parmetros del comportamiento.
4. Especificar la regin programada.
Configura la regin programada para el comportamiento.
5. Hacer el comportamiento como hijo del TransformGroup
3

 % "\G7*" " 7
I,'4  47

cB*  '&
&  @4<&
02,( 0! + 2 +0W('*'<*!7&
2. !\ 5 0& "  V '&* @
/0' % 0"g
 !Q( 0" *+0"! U 0!- 7 '&* @7 w0 % 07"| "!Q( 0" * 0! U*` "2 ] 0
kj&
" Eg+"!:(*0" *I0!+U*&0" 0! h0" 0!Og
+"!Q(
0 I0!%U
0W %!% " (* "!- "*&*
bF!+  (* !-*&`M"g
+!Q( 0 I0"!+\<5"J07.YR-* 04 '  |= G0280*5247 &* 0*@, %'U 0
"g :  I+J074&   J<&6072(*0!I+ 2 "
 0)(!+'<'*#-  < =b/0'<'0'4 0
&0"25( 0"!I+ "2 7I0'2"&  0* <'0J 07( 0 .' 8*  !/', :  IQ
 42. "! 107U
 0' :  $7 a* '&72&*a*0W29J *&    , & !+ '&
&  @4<'&
0"25( 0"!I% "2  0=_ 
&* 
H
 "g ":* I 4*?  "( !% W('! 07(*0"!+&* 07* "!0%!+ 4 &
&  0'U *&  
M*"*<0
&0"2,.' * &* 07*J<, '8 &
&* 07 '=
[  )wI+ 7 "g
+":  I7
\ &* 
 5 * 5( "!% (*'&  #- &
!\'4&02,(*0"! + 2 +0<"5! 0% &* @78<"5807.YR%I0
' * "60<W'41"!:(*0<"0.R%I0T '   =cB40.YR%I0Dw' - E " ":*" *I77&
2.' 5
0.YR-*I0,j+*`+-4  5' ,!+0+ '&  @(& #- #+&
"!+7(+  5J   0"!<5
0.YR-*I0[E=*G0"240,"X   0"!<+07.YR-*I0,&
"2.' & '< 8 *VU 5! 0+ '&* @7J 2,.' Z
&
2,.' E=cB80.R%I0Dw+% 7I "g
"Q  $7T#- 
?' .'  (*'&  #- &
'&  @4<XR-<"
! 0 '&  @7U "69 1 0,<'5  &* 0M49
1 04#: * |=
 "!+ 5!+0+ &* 0E 8&07
+ 7+J *&    'U "`0.R%*I0Dj % I "g
":*" $7%  
 1 "
 &07
%!:&6I0!73")(<5* ! *W(* "!% ,
0El
_  W !%&  6<',G0E
%!:&` 0"!%J<w' % E"g I: 7 I
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
&602,( 07*7+5! 0 '&  07* 6<"
%*`+-8 "J#-"
+5  * "!- V  <0W 5 
 !Q( 0   V* &* @787-!+W(* "!<9*1"' 0'

(&* #: &


<'0 * *<05e   0"!"17*"!% <0W(*0!760.YR-*I0[( '&  #- &
<0'=F
9 1 05+"!:(*0" <0 W  )( !+ 1'7 !+ "!\* -!+  6# 0"!Q24 '&* @78<"5! 0+ '& @7=
 gqYIy 6 {v6I6 qg`I `YqBq` `Yq
{gq{|`IuwFg6`q6|ev
\ &0 6-!:*&6I07!E* 4   0"!+(
07!"<" #+'&6 0< " 1" 0'(* "!%9"2%! 0'8<'"
 "!:(*0" <0"!
(* "!+ &
0 6-!: !E* 5!+0 '&* @74&6025( * 
0.'!%
XR-M'U  "*<'0,"6j+*` :8 7
(&* #: &
<'0E=
 "!+9"2%!+0''l

alpha - la funcin de variacin de tiempo para referencia.


target - el objeto TransformGroup a modificar.

60".R%I0,%*` 7-8 "4<'5 "!Q(*0" <0"!<". 7*"!E &


(* &* <" <,<, & !: %'!%
'&`-  < 7=


E*'T"4G": 44 ", J5 4*'7"G7, 7I  


I5"4e 

(*' "!E"*  '&&* @E44"e% 2,( 0 Wa* '& ,**  <'0W807.YR-*I0[E=_

4
(&* #: &
&* @78<', 0.YR-*I0}('*'<'*!7&6072(' eR% E=
[  8[ '
_ 080.YR-* 0'J<5 &* 
[ 
5*
(* "!% & !%' "!\* 4#-*&* @3"4  "!QN 74
% 2,( 0E=_* &* 
[5(! 0<&WT  " 0"!7
%!%&
!+0M"
0EU *&* ** *=e   0!3"
(!+0<7*&
<'7(* <"<5 5a*0"!% M8<5 0(* "!+92*-! 0'J<"60".R%I0[ '\=_
0J07.YR-*I0'
[
5*
4&6072"27+&0E"4&6072,( 0!I+ 2 "
 K
0 "g
+":*  \( "!% 5(!+07( 0!+&  07* "!
 24 '&* 07*8<0.R%I0'T '   =
[+  < V( !-92* 0'Ua &*  <0W W(!+0'1!% 2 '&  @J%!%"2*<' 247
+8#: *? . 7=
k4"
%!+ "!78<"* "  J<&
< W(* "!%9"2%! 0''U
* .!E3,"4XR-25( !7<'[W(*<"
&0"2,.' * ! *4#+9&*  2"
+,&6074&02,( 0!I+ "2  0)( !% W(!+07( 0"!+&* 0E* "!E!+0 '&  0
 "*&    'U240  2 "
I0'J<'W(Z <' 0EUM4 7I0'8<'5"* 4 *VU &07280W  7( !I%'!% <
("!I+ ;0,"
 "
V* "2 
 0<&0a '=
G07
-!-&`+0"!<[
_* &*  4 ')(!+0(*0"!+& 07 07.YR-*I0'( !+ &076 "!I% !\ 5a 0!% "T  " 0!7 (a 

  0"!7
%!+,oMWn`='`0.R%* 0[ ',8*#+'&`-  2
 5"* 4#- &* @E8<% "2,(
053"
1*"!+ 4   0"!%8 (a 7
%!+&
"!+0M'*0E=_* 4#-"*&* @74-# I:/M 8& "!+ &6+!QN % &
J<'"
0.YR-*I0[, 9J<"*%!-2  <" (*0"!( !+9"2%! 0'J<*#-  <'0(*0"!E  * !- 0\l
`q`|
6F&* &607- *0,&07,(*"!- 0<0<"58 1*<0/=
`q`Iy { eXX{  Y[y ~YgveqXXy  eXqegq$y Y
\ &0 6-!:*&6I07!I02 
@ 0} 7"
W +' *[ '*EG'++ 7&0240)(* "!%92%!+0
M4 * 1* , 0T   0"!%(
07!"<"!%&6 0, I0'<'0 08<"29( !+92*:! 0'U!%  " <'0)
0.YR-*I0[,35('! 0<&4   0"!+8<'
<"&"!+0, 5*0&*!+'&  
 '='\I0
5!%(  
f'2!%0<"4 '&4('&* #% & <'0W(*0"! 7G"
O=6k 7G "JKn U*`0".R%I05 (a
 5!+(  5
< #- < "2
 7='`+ "2,(
053" ! <7 !"< <'& !+0Wa  5 05 9
(&* #: &
" <'0,78"6
'1""
<0}( "!%92%!+0W * "*<0)* 
&  <52   17'*<'0''=
 "!+9"2%!+0''l

loopCount - nmero de veces que se ejecuta este objeto alpha; un valor de -1


especifica un bucle indefinido..
increasingAlphaDuration - tiempo en milisegundos que tarda el objeto alpha en ir de
cero a uno.

w7 4Ej ""


G0240 527*&  0*@ 7
+!- 0"!-2+7U &
'<' &
0"25(
07!I "2 7I0% "5 0N|2  
(!+01!% 2 '<0''='\I0'Ng2 +J &076#- 1'!% *  <'05 2Z* 0'<'0,* *'' E\"

<, &   }"*' 7O=
iw M; * !- T# 0!-2 J<,(&* #: &
!\' ,!%1 @7(!+01!% "2 '<' 7U 5249J**&    8& !+ !
80.YR-*+0}"  G+E= %!+ J0(*&  0 &*  M*5/7*" *7/% LJM
/7  E\7 M
$7E=
4Z*I0<'05 +   "
J<'H6"a *  0"!
rY6y x{v ~Yv`x6e y `eXxX 6`xXwgve6y 6
kj" &
&* 07 5 5!%1" @7(!+017!+ 2 '<' <'""* 7 5
0'Ng2 +8(&* #: &
<'0=
 "!+9"2*-!+0l

region - Los lmites que contienen la regin programada del Behavior.

[  W/"
 *'
\(*&* #- & "!ENg2 +6#+Z!: &0 &07 * 1"'( '&  #- &

<05"(" 0& "
%!% "`M
!+9'<" 0W(* "!% , 6#%"!% 7='
 
0) 0!:24 "6< %( 0<",gNg2  8* !7"&-!+0 o7U o7U
o=F
I0E &
4" !+ < 0* " &
&* 07* 5 0#: &*  "2
 1!+ 7 <&020W( !- &0E 7 !
"`0.YR-* 04 '  U *&* 
M* <'0 0<"  (*0 .'  0'&
"  V* '&  0*J<60.R%I0\=
_  W !%&  6<',G0E
%!:&` 0"!%J<}/7*" "'+
\ &* 
< #-*5" 5!%1" @E8<5N|2  86#+Z"!- &
36+9<*#-  < W( 0!/'('
I0
&
"
%!% "eM!%9< 0\=
*``xy  eXv6gv6g
\ &0 6-!:*&6I07!&*!+' W* 5N|2  6#+Z"!- &0,&7
-!+ <0,460!- 1"" o7U oEU o\&07"
!+ '<" 0<n*=
*``xy  eXv6gv6I*6y {|zXxG~{v`{v6 Yxe6`X vBgqexy {
G07
-!- M*5  &* "  V 5," 7 *'+W 
 <'0,"*("I0,& "
%!% "eM4"
!%9< 0
(&* #: &
<'0=
3

% ,"B, 7I "  $A5w" ' *E

!+ 1247 0<,B@'< 1'0n`K 26-!% 54XR-"2,( 0,&6025( *I0,<   0,<'5 8&* 

 
 "!:( 0 <'0!% ( "!% &*!%' "!\*   2 &* @E=_*   24 '&* @74&*!% '< &
06+&@<" 1'0,
* 5!+0 &* @74&07- 'f* ,&0'J% 25( 0<5!+0+ & @7; 0 "6<'5
'1"" <'0'=
*( 
0Dn<"5 5!+&  ,8&*!+' "!7"`0.YR-* 0j+*6 -8 7,(* !+ 520'< #- &
!- 0<!% 
+
 eR%'& &* @7='`0.YR-* 0,F+*6 -8 7J#-"
+<5" +!Q( 0" <'0!<". 7 !
'&`-  < , &
(* '&* <' '<,<',
&*!- -!% E=60.YR-*I0,F+*`+-8 7  2 <05X%G 4 
&*!+' 7 5N|* =_ & (* '&  <' '<< &!- % !+ <,X%G 4  " &
&* 0 , 5N|*'
E=
*( 
0C,8& !% "!E40.YR-*I05 " (a W(* "!% <" !- 1 !\ 5 
 !Q(
0 '&  @7"=_*0J<'0(* "!+9"2%!+0'
(&* #: &
<'087 5N|* n6<"X#-!% 12+0<"&6@<" 10 0" f2"!+0<"

 
 "!+ &
&* 0E 8<'"
.*&* M4"e% "2( 0,<'W'4&* &* 0\=X   0"!<'QKn6(*& #- &
,.'&  
&0
:N|'*0\=Fe% 2,( 0 (&* #: &
2   
1""
<0(*0"!\ 0,3",e   0"!"<"oo'o
 17 #- &
4, 1"" <'0=0"!\ 0 I0EU*"6&02(*0!  2 "
 0,!+0 "!& <" &* *%!+0
 17'*<'0'=
*( 
0<"5 5!+&  ,8&*!+' "!7"`0.YR-* 0)
+":* I7O=e0.R%* 0 + E "|
+":  I7
 & !+  N|* 8CnM8C'CE='  +!:( 0" <0"!7<'.*+*"!E!%*#+!+*&  4 5
%!+  `#+0!-2 &* @7;#:
 M8 "60".R%I0, (a 7='\I0,
&07 * 1"4&0 
%!-*&6I0!O=j
6+eR%2,( 0 W  ,&6025(
0!I+ "2 
I0)( 0!<" #%&6I0,<'"'j % I "g
:* * \(* !%
a & !/' 5!+0 '&* @78&
02,(  
0.'!%"6eR%M"=
*( 
04W4(*'&* #- & "!E* 5!%1" @7(!+01!% 2 < 7= kjW  W'40.YR-*I0
/7  "'+&07J*T * " 0!%(*0"!7<'*#%&6I0\='Fe0.YR-*I0/7"  "+
&*!+
 5N * C"7=_ ,6#+"!% 
&07#- 1"!+ &0240W 0N|2  J<'"6&02(*0"!I% "2  0,
N$ ' CE=
*( 
04#: * gU "67Ua &
<"6&02(*0!I+ 2 "
 0W'a R+0<+7 6 7-8 ""='\6I0

&0 * 1," 5gN|  C =
Fragmento de cdigo 1-7. Mtodo createSceneGraph con Comportamiento
RotationInterpolator

tX`e y ~wgq~YXF|`ew~Y|veqXv ~v`Xv`Fgq6eeg

t \gveqgvj$vB|XX6e$XvBX|q`X~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t \gveqgvj$vj$gqY|6$uD6g6eG`xXvGq6xhy ey |y q6 y {vhy 6j$Xv

t 
y xev`{$y t xXxhy `jIYv[geY6`|vXeY6gqe6t

t gqYg6$uwF|``j6Lp ey [vYW*|q6Yg6$uwjg6`X|%
6Op ey 6t {vXg7q6q6`y y g*|q`g6$uFg6e`t `1 ?J@NB  ? J
 t
6Op XX t qexex`\ey x6g6Lp ey %
 t
 t
t \gveqgvqXy uGX vXqYvB veq
ex`v{q`xexhy egw|XvwY~v`Xv6gqe6t
e P
t 76 6|E`vhy qG76YrYv6ey vY~{vh'$y y ~ qe
P
zt}6Lp ey 6t qex`xe\`y x` YvY}6 `$\ev`  t I%
t
t 6~Y|veqv|y uwvwrYq` y Xj$e~|y 6FGx6$y r{vw$vGq6ey ujq$y 6
P
t eqhgq$y  eXqB[vY eq6+ Q  R %

BO@

\ E %

 tP\gveqgvqhvYv6qrey `6Lpgv`~e$qY v6 6Iuj|vGxevXXy gvex


t 66Xv6gq$y `w6IYvGv`~Yy Iy v`xj$gq6Yg` uOpgv`~q`xBqexexhy
y {
 P
t e$v{~vvG6gq6e6t
 P
 t Ygq$y  {gv6$ q|` gXqg`
e t v Xq$y 6 gv6$X` q6$$|Ygq$y 6 eq
{6Lp Xy -
zt
t 6qh6`x6y ev6gvXve~y $y veqBgv`6y 6jq[YvqXry 6 y Fq`~|y rYv
X P
t*6exy X `v6gvh6eXxXjhXvY*6`Yxy Y ev6gv6|%
` tgXgqYg6 t {vX ~YYv`x6` y Y
*``xe$``xe{%
t}6Lp ey 6t qex`xe\`y x`Iggqg6g%
 t
 tgvX$XIw6Qp e
z  t  
v6Xx6~Y|vXqXgv ~{v`v6Fgq6euwv|`x
\ 4#-!+ 127 0<&@'< 10 ,** &0EJ0%!+0'T#-!% 12
I0'4 "
+!: 0"!-(* "!% &*!+' "!7"
(!+01!% 2 <eR%2( 0 iw"  0  '7w&'= R% *  =`[6eR%'&*
 !E  (  &
&* @; "!%"280'8&
0"20
 5!+*<'"!- V* ,*G -h'&074&6072,( 0!I+ "2 "
I0<5!+0 &* @4& <" &* *%!+0
 17'*<'0'=
*(!+01!% 2 w" E & !+'  &
* "!- 01"!%9*#- &0<'5 W7 1!% Dn6K{n`E=60.YR-*I0
' - E4; I0Wa' R%0<%*` 7-8 "&60"240W ,!+*#%"!%"*&*  ,Zg=`[ 36
!+" '&  @,(* "!+'&
4 ' 0 "!E 5!+%!- &
&* 07*;<"5.'&  J<""
%!+0<" &
*  01!+9 #: &07U' 0W 0
a & 7='w&! <" 3", 08 "!+&08<'5!%*#+!+*&  #: '&*a* W("+' < F 0 0E( !  <'"

&
* !- 01"!%9*#- &60\=_* 5N|*' W('
 ' < <"
<""* 7Ea &* "`j+"*`+E-8 7
8 W!+ #-!+7 &* E=

_* , 2 18<5 W7 1!% n`Kn652,*%!% 52 !+&


0<5 eR%'& &* @EJ<"*(! 0'1!+ "2
iw"  0'  '7w&'=

% ,"B' * 478"F+"*6 -+ ENM"* 7S5'w '  '7j

/0!"(I07U'( 0<'240'8&0"2.'  !7&02(*0!I+ 2, "


I08&07 ;%!+ 7 `# 0!:2 &* 07*J<
! 0 '&  @78<5 08eR%25( 0'8 
 !: 0"!-= i"  0  'w<\= R% *  a &  0\=F ,!% 2 <
&0
+ <'01"!%9*#- &60EUa *M40.YR-* 0  2 '<0'47XOF' +4M47- U*3<" 6-  1""
%!%
 5! 0 '&  @6+9*% & M4"6&0"2,(*0"!I% 2 +0<"5!+0+ &* @7 .&  &0E%0/<'"`0.YR-*+0
&*.5!%(*'&6%  27+7=` &* "!- 0W!%*' + 
 <6 4#-!- 1247+0<"&6@<" 10
( 0'<"240T "!- 0, 8#: 1'!+ n*= CoE=
Fragmento de cdigo 1-8. Rama de Contenido Grfico para un ColorCube giratorio

tX`e y ~wgq~YXF|`ew~Y|veqXv ~v`Xv`Fgq6eeg

t \gveqgvj$vB|XX6e$XvBX|q`X~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t 
|YgqgvOp|ve~
qeF~ueYy gvw|gqYg6$ujq$y uwq$$y s

t gqYg6$uwzgqgvB[vYW*|q`g6$uz`7g%
t gqYg6$uwzJvu XgqvB[vYWgq6Yg` uwz6g%
 t
gXgqYgv
t g 'E  q|t  t  xX-
 t
  t5|v`uG Y|qv
t gX (E  q$6t  t  xe%
e tgXgqYgv
t u` vu Xqv`%
t
zt)gqYg6$uwF|``jOp YgqvB[vYW*gqY6$uwjg6ee$|Ygqve%
t

t \gveqgvj$vj$gq{g6$uD6g6eG`xXvqxhy ey |y q6 y {vhy 6j$Xv


P
t 
y xev`{$y t E Yqe vw|Xv ' ? J BG@ E E ~q`Xq6ey y {w|q
P
t 66e v6XqrXy 6~`xevG~{q6uwex`y y qIXY$y uwv
t xexhy Xgw|v
P
t 
|XXIve6gq6`6t
 P
 t)gqYg6$uwF|``jOp ey [vYW*|q6Yg6$uwjg6`X|%
 t}6Lp ey 6t Yvg7q6q6`y y g*|q`g6$uFg6e`t `1 ?J@NB  ? J 
 t
e t}6Lp XX t qexex`\ey x6g6Lp qgve%
zt}6Lp Y|qv
t qexexe/Xy x`|6Lp `y %
X t
t \gveqgvqXy uGX vXqYvB veq
ex`v{q`xexhy egw|XvwY~v`Xv6gqe6t
P
t 76 6|E`vhy qG76YrYv6ey vY~{vh'$y y ~ qe
` P
t}6Lp ey 6t qex`xe\`y x` YvY}6 `$\ev`  t I%
 t
t \gveqgvqhvYv6qrey `6Lpgv`~e$qY v6 6Iuj|vGxevXXy gvex
 P
zP
t 66Xv6gq$y `w6IYvGv`~Yy Iy v`xj$gq6Yg` uOpgv`~q`xBqexexhy
y {
zP
t e$v{~vvG6gq6e6t
z t)gqYg6$uwz sXy w[YvYWgq6Y|6$uwz6g-
zezt eqhgq$y  eXqB[vY eq6+ Q  R %
z t
z t Ygq$y  {gv6$ q|` gXqg`
z t vY gqYIy 6 {v6$X6 qg6$Igq$y 6 eq 6Lp ey 6 sXy X
z t  t  I $ eqg  qYI6t  t  %
zt
zP
t 6qh6`x6y ev6gvXve~y Iy veqBgv`6y 6jq[YvqXrXy 6 y Fq`~|y rYv
t 6~Y|veqvBqXXv6gvG~v6Ygv6gvexq`|vG6$y 6y y $gqexy FY
 P
 t*6exy X `v6gvh6eXxXjhXvY*6`Yxy Y ev6gv6|%
` tgXgqYg6 t {vX ~YYv`x6` y Y
*``xe$``xe{%
zt}6Lp ey 6t qex`xe\`y x`Iggqg6g%
e t
tgvX$XIw6Qp e
6 t  
v6Xx6~Y|vXqXv ~{v`v6Fgq6euwv|`x*v e{qrq6z6x

BO@

\ E %

_* , 2 18<5 W7 1!% n`K-CnJ2,*%!% 52 !+&


0<"
G0" 0"!%[.720  2 "
I0<"
(!+01!% 2   **'EF\=

                  
iw MJ%!+#%0"!-2 (!- &*(*  J<"&*!%' "!7&60E 7 <0'81''0"2Z%!- &0''='cB* # 0!-2 * "!
 8&* 
J<'W
-   <' <J1''02Z%!- & (* "!+ ) L"U 77U M 
""QU
M4'*+\= %!+ 4# 0!-2
8'( '&  #- &
"!&007! <7* < J<4 Z"!I- &
(* "!+ )(
I0'U 
'1"27I0'J<WgN| ' ;M6m+0

'(!$#: &* (


0  1'07* " "='cB  !+&
!% 4# 07!-2   !E4&
!+1" <'0!"1'02Z%!- &60\=\
(*91 * <"2%!% 5 &*!+' &
&  @78<"&0E 7 <0'81''0"2Z%!- &0';<"5 J<0(!- 24"!% 
# 0!-2 =
     &                  0     1       

0240 , ?(  &@," )(*91 *  %!- 0"!QU4eR%2( "!"<", &   h I-B "%
G
 !$ &60240W!% N V( !% " &7 !- 01!%9 #- &0< 0<0 0(!+017!+ "2 J   7[=F
 Z"!-2  U
0 TcB !  W
0 Vh !I-* " T6&0"2'2"
+
5!%*#- "!% ( &* 0 ' !I-* "`<"%!+
< 2"  07*43"5!%"  "*  0'J0.R%I0'; *  E[= B < 07.YR-*I0* " <"
 *! 
0
' !I-* "66+ .' '&
5"J  "2 <&0'0!+<7 '<' B !I% * '=
cB80.R%I0 " * !I *&0"20)(+0<"5!+ #-!%*&* W(* !% 5 0'J0".R% 0' ' *  87
 *"!  04 ' !I-* "g=*G07",*  ,"G , B' " EUa *MJ 6 "2 <
&007! <* '< 4""
 !  0  *!I-* "g=
6*  2 <&
0'0! <"" <" J<" ' "! 
0 ' !I- "`  >J<",2  0,<!%'&*a 7='
eR%X
 ')( 0 % 0Wa &* W <!%'&*a 7U "6eR%X
 ()( 0 - *0Wa* '&   !-!- .* MeR%!
 )
( 0 % *05a &* "6'( '&6+ <0"!QU*&60EJI0'< 4 " <' <82*:! 0=_ )7 1!% C'K{n
2%!+ 5 0!: "
 '&  @7&0!%(*&6 0, "6('&`+ <'0!7' ' EB  \=

        /  2

      3 " *    1      

+' ""G 7w*%*5"48X+Ih "

c  0'<05G7*7< &


* "!- 01!%9*#- &0<*#- *580.R%I0 ' * "g=*7d
B
<, J'.&* 
8<'5 ,&* 
}'Q( 0!E 0  0EU 0'J0".R%* 0'EP
@ 0)(<
 !\a*0`R% 84
& * "!- 01"!%9*#- &60\=F`0.YR-*I0W7 7S 0,&607- 7 5 # 0!:24 '&* @E

0".!+5 4# 0!:2 0,"6&0" 0"!<5"J07.YR-* 04 '  |=\ 5 # 0!-2 &* @E8+9  24 '&
 <" 7
 0'J0".R%I0'5w'"G7,
E*7
E!+ #%!- <0'(
07!"`0.YR-*I0WG'E[='cBJ0.YR-* 05G7*7
(<5!%*#+"!- !   5"4&02,( 07*7 ) 0'<0W;'%Y M8M4 5'4&0"25(
0E*7+W 0<0
*'"+7 \=
F 0'8 &
* "!- 0J1!%9 #: &0J<"5 W( 9'1" , "
+"!- 0!QU "6N|2.*0" 0,<'0".R% 01*Z"!- &0
!+'&6+9"*1"' 0#-W
%   V <0}(* "!+ 5!%7(!+*
 !E60".R%I0)B %'E=6 &*   0

&
* !- 01"!%9*#- &60<", ) 1!+ C'K:CW26%!- ,"40".R%I0  *  !+(!%   <0,&60205"
a*0eR- ,G7*7 %!- 9
1 0EM8<'0'5j'"G7, E 7
I @   0
\7  1" !7<'"
!%&6+9 1 0
1*Z"!- &60\=

c 80.R%I0 ' * "` W(<"<*#-  !\   <'0


@" 0W80.R%I0W'EPM'*0'<'0
B
&0"25( 07*
 WJ74%YM"= (*&* 07 " 2
 7U "`07.YR-*I0W7*7P+ 2. Z"4 5!+ #- !- W
 0'<'0&
02,( 07"
+*"+7 \=*_ 08&07 6-!-*&6 0!%J<"57*'7H2*6%!% "3

(<78&*!+ !*!% #+"!% &* 8 &
02,( 07"
+
0<0'U*&078
@" 0)* 5!%*#+!-*&   5"
 0'<'0WJ'%Y MU
0,&0!+*#+"!%*&  8 ,92.0;%(
0'8<'&
0"25(
0E*
 =
G07
-!-&`+0"!%J<5*'E
Yqv`z67g

G07
-!- M*5  &* "  V 580.R%*+05G7*'7*  1"f"J% ( 0,<'&
0"2,( 0E*
 =
Yqv`z67|ve6uwv| evXujvX|
G07
-!- M*5  &* "  V 580.R%*+05G7*'7d&607 1''0"2%!QN ,(&* #: &
<" 4M"
&0"25( 07*
 <', (* "!- 7 &* W' 0\=
Yqv`z67|ve6uwv| XveujvX| eveq6gq6X~vBq``veq`|q6~{ve
G07
-!- M*5  &* "  V 580.R%*+05G7*'7d&607 0'J&02,( 07*
 8<'102%!QN M
(* "!- 7 &* (&* #: &
<0=
 -!+ 43*,60.YR-*I0)*'ES 0, Z4  *00,&0"25(  <0EU !+*#%"!%*&  8 5 0'

&0"25( 07*
 ('<'7280< &
!  &07 0'42ZI0'<'0'J<"` 1 "
 5!%& <!+0E='\I0
2Z* 0'<0('*'<'7 * ! *07.!-07.YR-* 0EP  *0J0,&0"2,(  <'0'8` 
&0#- 1!+  8& 7( '&* <" <"J<"60".R%I0}(!- 2"!+0\=60%! 0W!+& <!+05  I 5 
&
"( &* < <"J<"57*'7=
_  W !%&  6<'W4Z*+0<0J<",G7*7
c 80.R%I0W'E>!+*#+"!%"*&   0.YR-*+05j"G, E* El*;7%YM8M6m+0
B
*'"+7 \=6 '
I0,&07 0'2Z*I0<'0'J<&07#- 1"!+ &* @E280'%!% <'04 '3""N$U
 2.' Z7
*? 6+" 0'8&6025( 2"  "!- 0'2Z* 0'<'0'4
rYy x{vgve6uwv$ |veujv| eve6uwv|
rYy x{v eveq6gq~{v` `veq6|q`~vGq6`Yveq6gq~{vX
B (* '&  < <J<5*'E
_ 080.YR-* 0'EPI "2.' Za"!%< 4&
(* & < <";<"5 8&   
8Q 4+ :U"jEUM'O=
X1?A@CBX E ? ZE ( B JE6 P[\@ \ E
X1 ?A@CB  E6/  E B FE ][^@ E E
X1 ?A@CBeF?je ?jB`%?jEE B DE
P[@ E

j"G,*7*

_ 080.YR-* 0'5j'"G7, E*


&607
%  7 8'( '&  #- &
&* 0*4*?* '&`% J<, 0
%!- .'
+0J<","80.R%I0  * |= B < 5* <", 2& a J'.&*  8<
j"G,*7* < #-
&* "!II0'8 *%!: .' I0'T  *  =_ ) 1'!% CKQ52,6-!+ W' 5( ! +
<9!:.*0"6<"X

*  73*&
07
%  5 8&* 
5w'"G7, E 7
'M8**
< &
*<" 7+=

w*- 7[  ;"8X+Ih * '


 2 2400.YR-* 04 '  *(<", "( !%'&
"!E2&*a T '&
88
@" 0W' ! 
0  !I% |=
b "* - <'0< #:  !E" &* 
)( !+ &!+' "!"`0.R%* 0  * "  1" !7<'&
0 6-!: !
&
<" 0.R%I0  * 6<" <'," (!- *& ( 0E='iw *M;  !Q T#+0"!-2 8<'<" 
]* "!\* &* 
,3"
< #- W"J07.YR-* 04 '  |=
X#-!+ 1"27I0<"&6@<" 1'0CKYn;2,%!% "6&@'< 1'0,*3 * 0<5 &   h  8%
&0"20,XR-25( 0<5" 0"!+1 7 V* '&  @(*0 .' W(* "!% 5* &   <'W'407.R-*I0 ' * "g=_
0'
2Z* 0'<0*0-  78&@< 1'0\=&@< 1'0<h  4% \
0, ( !+&  08eR%2,( 0'
( 0!+3*) 0,(* "!I% & ' "!:2
 5f
% g=
tX`e y ~~ qXEy q ?jOp|ve~6vsgv6xe Yqv6z`
t

zte$y rYqYgvBveujv| rY`ve6ujvX|


te$y rYqYgv ev`q`|q6~vwrY eXveq6gq6~v
t
t 6~Y|veqv Xq6v`z6;Fy $jev``uwvY$ qxGq6XXveq6gq6~{v

t e$vGXv`6uwv| y j~{|veqXgvXxhy uwv|XexG~Ygveqgv`veuwv|

t e$vGq``veq`$q`X~vhy F~Y|veqv`xBy GujvX|exB~YgveqYgv `veq6gq6X~v
 
 teee y ~/7y q6 ?FLpgv`~||
 t
e tWrY`ve6uwv| h~{|vXq|v`vX6ujv$ g%
tWrY `veq`|q6~{vBG~Y|veqgv eveq6gqY~{v6g-
zt5IXy et {vgve6uwv| grYeFvX6ujvX| %
t5IXy et {v eveq6gqY~{v6 r XXveq6gq6~ve%
t
t
tDe$y rYqYgvBveujv| ~{|veqXgvevX6uwv| g
t 6~{exevwG~Y|vXqXvGxevgq6` ``ve6uwv| `rXy Xq6`Op$vX~
  P
  t
t

 tDe$y rYqYgv ev`q`|q`X~vG~Y|veqv XXveq6gqY~{vB|
t 6~{exevwG~Y|vXqXvGxevgq6` `qeveq6gq6X~vGerXy q6Op|v`~
e P
zt
X t
t  
v6Xx6~ qe7y q6 ?jOpgv`~
_* 0!+1  V* &* @74<'5 ,&* 
h * 8% "4 !+ 127I0,<h@< 1'0C'K{n J 2  !
5 &* 
WG7 7%[',3'*? %  <W'40".R%I0)*'E[=
kG 1!- 280' &* 

h *" 8Y- "&0280)(
I0< !-!% "3")( "!% <*#-  !&*  8&04&07
 7 <0'
(*"! 
07*   V* <0'( !- , !- 0878&07 %!:&&* @74<', &
 !- 0J1!%9 #: &0"= !+ 4 "!\
eR%"2( 0,&
0"25( * 0<"5 0"!%1  V '&  @4<" ,&   W(< !&@< 10#-%<"
 &*  5G7 7%[*,3 9,"" (* '3" ~uBt Xe6t p|zXx
t {$y Xt `vX6uwv| U 3*, 9
< (
0E .  <" 6-!- .*&* @78<"G  [=
cj !\'E&0"240W. 
)(* "!+ 5 &*!%' &* @EJ<"&   J<"0.R%I0T '   T#+ '&    
  0,(!+01"!- 2 J * * * ,=_ 8&* 
J<0.YR%I0'T  *  ('*'<'7 * ! * 
#+ '&*  2 &0240W &* 
WG7 7%['," 0'8XR%25( 0',w ' *'7<'5 W(*91 *
+"!- 0!O= kjW(<",  "2 !7 "&607
%!:&6I0"!E,
 "!I "!760.YR% 0,&*!+' <'05&0"20Wa R+0<'

" 1f4 "" 5N|' <&0'< 1'0E='F * 1"' 7+,gN|*' <eR%"2,(' 0EU 7Lj'"
4eR%"2,( "!"<"W4 ""=\ &6@'<" 1'0,&*!+' 5"8h  4% M 0, "]* <,&6020Wa R%0<'
7Ow'"8" &
" !- 01!%9*#- &0El
6Op XIt qexXx6\ey x6$XvY,7y q6 ?FLpgv`~|gI%
&0 6-!-*&6I0!"h *" 8- "&*!+' "6h " 8X+ &*!+ 7
<0W80.R%I0)*'E3
!+*#+!+*&   'j'"G, E*7
;&*!+' <'0}(
0!E 0'2Z* 0'<'0'J~Y|veqv`ve6uwvY$ g'M
~Ygveqgv ev`q6gq6~v6g:=' 24Z*I0<0,~Ygveqgv`veujv| |&*!+' 5"w0'<G072(*07*7\;74%Y M
(* "!+ * "!- 054"`0.R% 0  * |=
2Z* 0<0~Y|veqgv eYv`q6gq6X~v`|!%'( 07
* ". <
&*!+' "!"w'"G7*7* 3<" #: *, '+ <60.YR-*I0 ' * "g=
%!+ W(*0 .' 0!+1' 7 V '&  @4<540".R% 0  * J<*#-  !\'* &* *&0E 7 '<'0!\*0
<"!- * < <"X
<'&* 
J *  7[='F4+<" 
]
0EU &   <'"`0.R-* 04 '  
( 0'<!QN &60E
 *"!\4 75j"05Ed&0"240W 5!+ N V8<'"`. K:1!+9 #: &03
< #- E=_* &  *<".< #- !E2Z*+0<0 
F(* "!+ < 0" *"!E"* 5!+*#%"!%"*&   ,!+ N V=
\  Z'&* &
% *5,( 0&60W29J<"%!+ ". eR+07U'( ! 0)( 0<"!ON  "!E29T#%9&* `<',+*<"!O=
cB* 4%!+& "!% 0!+1  V* &* @7,(
0'* . <"5 &*  <0.R%I0  * "6* * 2  "! 5 
&* 
,/ L"UG77U#
M *QU
MG"+< #- <' 84" (* '3*+
~6uht Xe6t p$zx
t Iy et `vX6uwv$ =*B < &* 
< &*  <<}j-  % 7U 3 8 *V
< &   <<"W8+""=_0'J<   J<'<"  "]*0<"}j-  % *M8**J<'
&
7
< 7 
0
  ?"(  &
"44 %'!+0!- "U'( "!+0,&@< 104#:+<"I0<" 46+ 8&* 
4 9
< (
0E . &07 <" %!- .&* @78<" 
  ='w&@< 1'04#Q*7 <", &   
F-  + *MJ<0%!% 8&   J<"5
%   <' <7U  '&6I0"!/(<, "('!+ <"!E298
0.'!+,
(! 0? 2 &* @E4 6<" 
] 0,<&*  =
        '             &        

\  &
&* @4&*'.'!%5 4&   J<W
%   <' <W( "!% &*!+' "!1"!%9*#- &0'(!- 2 % 0';1"02Z*-!- &0
&0"20,&
XR% 'U &07 0'U*&     <!+0;M46#%"!% '=_ 0'(!: 2 + 0'J1'0"2Z%!- &0'; 07 
'1 <
# 0!-2 5249T#%9'&   (* !+ &*!%' "!&0E 7 <0'8"" *"! 
0  !I% "g=_ 529T#%9&* 6* !
 &*  G0 0!%'.E=
_* 8&* 
(!- 2 % * (! 0E(
0!+&* 0E* 4 "*(! 01"!% 2 <'0"!/249T#- *?' .'   <' <53, &   
G7 7%['E=cB80".R%I0}G %[< #- 5 102*-!QN M4&6@ 0!74&0"25( 07*%

;'-YM=*G07
 &*7
+27 7U 0'<074*G %'T#% R%07U* ?&
"(
 0*8+ "2 ] 0E=
e "2 ] 0<W'B7 %['
@ 0 ('&  #- & &  "*<'0 & !%' 7=
cB80.R%I0}(!: 2 % 0)(! 07( 0!%&  0 ,29T#- *?' .   <' <,(*'&  #- &

<05 4# 0"!:2  
(&* #: &
!7&60 0!O='F' &*  <"5
%   <' <1"02Z*-!- &
)(!- 2 %  7U "(!+01!% "2 '<07!
 0)('<'& 2.' !E 1"072*%!QNg U'( ! 0}(<&
"2.' "!E  (* "!- *&  7=_ 8&   
(!- 2 -  4 < 4 " (!+0'1!% "24 '<'0!E 8#: *? .   < <<" "!  "!- 0'8XR-25( "!+8<,
2 2 4# 0"!-2 1'024Z-!- & W(!- 2 %  <'0*<&
<" 5* 4- *5  (* "!- "*&* <" #+!%
 
a &* 7
<0W ,!+*#%"!%"*&*  5Ww'"G7, 7*
"<' 7( "!- 7 &* < #+"!%7 E=
_* 8&* 
8<5 %   < <D/ LUG77U#
M ""MB"+, 98<'*#-  < 44*(* '3"*+
~6uht Xe6t p$zx
t Iy et `vX6uwv$ ='F W7 1!+ CK:W( 0<280'T *!E 5( 07!+&  @8<"*( 3*%
~6uht Xe6t p$zx
t Iy et `vX6uwv$ 3&60E- *5 8&   '(!- 2 +  '=

/%L
_* &*  1"02Z*-!- &
}%L&*!+ &*.0J<"< 27
 07*'=_
0'T   0"!%'(
0!< #%'&` 0
(* "!+ 5 5 0*1" % <EU 7 &*a'!+ M4  %'!% 0EJCW2%!+0''U*&6074&:! 05"60!- 1"U
!+' + " <'0,"4& .*05&0 3 8 Kn*U
K{n*U
K{neEM n U7n U7ne=_* , 07 1" % <EU
 &a!+ M   %'!% 5('*'<4'(*'&* #- & "!   240"2 0<", & !+ &
& @7J<607.YR-*I0\=
/0!"(I07U  W('*'<  "!7F+7 6 7-8 ""GRQ'
I0,&074&
2 *0,<'"6 &7* "!- 0

1!%9 #: &0 5",'(* !+ ,&


2,.' !\ 5 0&
  V* &* @740!- 7+ &* @78<5 0'8XR:25( !+
&*!+' <'0'8&075/ L=
/L
 '3"*%7l
~6uht Xe6t p$zx
t Iy et `vX6uwv$
/L4<' &  "*<'<'}j:  % EU
0%!+ &* 
<"*( '3"+~6uBt e6t p$zXx
t {|y `t eve6uwv| =
* sX|
G07
-!- M*5"4& . 0}( 0!< #%&6 0,&078C7Ugo,2%!+0;<  %'!% U* *& a!% M,(!+0*#: <" < <7U
&
"
%!% '<054"`0!- 17=
*sX| `q`sYx6y uB$ eq xy uB$ eqY6{xy uh `Yveq6gq~{vq6ev`q6gq6Y~{ve
G07
-!- M*5"4& . 0,&
07 J<" 24 * 07*;M4 (* "!-  &* <' '< 'U & "
%!% '<054"60"!- 1'7=
 -!+ 43*5 0'8&60E 6-!:*&6I0!%J 04< #+"!+
 ( "!% &
'< &* 
7U 8&* 
,/ LU

GE*EUM#M  ""7&602,( "!I 7 02 2402ZI0'<'0l
4Z* 0'<0J<")%L _*GE*D_M#M 
 '3"*%7l
~6uht Xe6t p$zx
t Iy et `vX6uwv$
\I0'24ZI0<0'4 97J<"*#-  <'087; 0'<  8&* 
(!- 2 %  'l'/LUG77U
M
#M 
""O=\I0j!- 2 % *0J &6072,( 0E 7J<"4  "!- 0'J0.R%I0'7*7"817!-(*0E=
Y qv`z64evX q6Xv6$y { y xX
. %  W* <5 8&
!%  ka "('7jE<"*(!- 2 % 0,3"*&
0
% 7 5 1"02*%!QN M
(* "!- 7 &* E=_ 080.YR-* 0,/ LUG77U
M#M *'"7 9"4&02,('*6+0(*0!E29J<5
0.YR-*I0WGEhU &
<' W 0,&60E8*5(!+0( 0,&025( 07*
+W;74%Y M=
rYy x{v eveq6gq~{v` `veq6|q`~vGq6`Yveq6gq~{vX
kj" '&&* 07* ,  ( !- "*&* <" (!- 2 - *0 ( "!+  0'<'0 0J07.YR-*I0'Ew=
G7

*_ &*  5h7< #: *&


0*0'J&
7%!% <084"`07!- 1;M4&
0"6eR%&
"
%!% "6 "  ' <0
&0"6eR%X(=_ 0T   0"!%( 0!"<" #+'&6 0)(* "!% " !+ < 0M  " %'!+ 0E)n UoM8CEU o52%!+0'
!+(*&6% * "2"
+E=
_ 6+ 5 !+&* "6<',G07 %!:&`I0!%J<WB7
 '3"*+El
~6uht Xe`t p|zXx
t {$y et eve6uwv|
G7<'
&*  <<}j-  % EU
0%!+ &* 
<"*( '3"*%~{6uBt Y`6t pIzXxt {|y `t eve6uwvY$ =
6v6g
G0 -!- M*54&07 0,&0E 0'T * " 0!+8<5!% < 0M4  %!% 5(*0"!7<'*#%'&`I0\=
6v6 $ XqX
gqexy e$ Xq v6y g
G0 -!- M*54&07 0,&0E4 !+ < 0M4 " %'!+ ,(*&* #% & <0'=
#M *
_* &*  5;M
"&*!+ 0.YR%I0'8&  N| <"!: &08&074 8eR%&7
%!%  "  * <'0,&074"6eR%X(=
_ 0T   0"!+(
07!"<" #+'&6 0)(* "!%  !+ < 0M  " %'!+ 0E)n Ugo4M8CEU o52*%!+0'
!+(*&6% * "2"
+E=
_  W "!+&* "`<,G07 6-!:*&6I0!%J<"5;M "
 3*+El
~6uht XX6t p$zXx
t {$y et `ve6uwv|
ZM "<' &  " <<"}F:  + 7U
0%!+ &*  <""*( '3"+~6uBt X6t p|zex
t {$y et `ve6uwv| =
y XxXv6$|
B0 6:!-
M54&*  
<! 0,&07 0'  " 0!%J<",!- < 0M4  %!+ W(*0"!<*#+'&6I0\=
y XxXv6$| `q
gq`x6y e$ `q
v6y 6{g
B0 6:!-
M54&*  
<! 0,&07 0'T * " 0!%J<",!- < 0M4  %!% (*'&  #- &
<'0''=
y XxXv6$| `q
gq`x6y e$ `q
v6y 6{ eveq6gq6X~vGq6eveq6gqY~ve

B0 6:!-
M54&*  
<! 0,&07 0'T * " 0!%J<",!- < 0EU* " %'!+ M4 (* !- *&  '( '&  #- &
<0''=
G"+
_* &*  ,h"+,&*!+ 0.YR-*I0'T '  " J6#+Z"!: &08&074"6&
"
%!+0,78"0"!- 1'7='
!% < 0
( 0!<*#+&6I05;<"Dn Ugo,2%!+0''=
_  W !+&* 6<',G0E
%!:&` 0"!%J<5G'+
 '3"*%7l
~6uht Xe6t p|zXx
t {Iy Xt `vX6uwv|
G'+<'
&* 
<"<}F-  + *EU0%!+ &* 
<*( '3*%~uBt e6t p$zext Iy et `ve`uvY$ =
X Xv6gv6g
G07
-!- M*5" ,6#+!+ ,&607 !+ <" 0)(*0"!7<'*#%&6 0 n*Uo52*-! 0'

XXv6gv6 | eq|qex6y Y{
G07
-!- M*5" ,6#+!+ ,&607 !+ <" 0,(&* #: &
<'0E=
XXv6gv6 | eq|qex6y Ye eveq6|q6Y~{vqeveq6gq6X~ve
G07
-!- M*5" ,6#+!+ ,&607 !+ <" 0M  (* "!- 7 &* ('&  #- &
<'0=
4Z* 0'<0J<",B"+
 '3"*%7l
~6uht Xe6t p$zx
t Iy et `vX6uwv$
0240W" ,*?
+ * @4<}j:  % EUh"%807.YR-*I0)4 73"*% *58
@ 0
G
0.YR-*I0)a' R+05'E[=
Y qv`z64evX q6Xv6g
. %  ,"'E3*&
0
% *, 102*-!ON M  "(* "!:  &* E=
Yqv`z64evX q6Xv6$y { y xX
\ 52Z* 0'<'0*5 *&  
M*W( 0!&02,( *% .   <' <&
0780%!+ 8&  *(!- 2 % * l/%L"U'G77U
M#
M ""O=
kw 4"2. "!+1'0EU &0"20W* 5B"%@ 0%  W40".R%* 0WG*7hU 
@" 0

( <*!\  "2 <0&0E <]` n=


rYy x{v eveq6gq~{v` `veq6|q`~vGq6`Yveq6gq~{vX
kj" '&&* 07* ,  ( !- "*&* <5 6#+!+ E=
Xa'8F+5 8;7Xb%-

F-  + *

*_ 102*-!QN <'W' &   <'W %   < <)(!: 2 + W*0<*#- *&60 0!O=_ );74%YM
3"W 0<" #:  ,"6&0 0"!<'!-  4&0 0"!7<'
<"*&0"25(*0"
+*+7 E= kw
!+*#+!+*&   5,
0<0*"+ 7U*`0.YR-*I0 ' * "6
"!QN 5.' "*&
07U*&0 0!\( 0"!
< #%'&6I0E=
_* &*  )w-  % <*#- *4  " 0!+( 0!<*#+&6 0,&0"2,*(* "!% )% LUGE*EUZ
M *QUM
G'+E=/0!eR%"2( 0EU
<" #: *"X  " 0!\( 0!< #-&I0)( !+ ,*f2!+0<"W( 0N 1'0*0
*
'<0}( !+ W!+7(!%
7
 "!*(*"!$#- &  =
G %[*
_* &*  5h 7%[ ,(!+ 7+  3""N(* "!% &
07 %!+ 6+ "!- &07 8&* 
(!- 28%  =
\ &* 
< &   <<0%!+ )(* "!I+<"9"!:. 0`<&   J * *  =\ 9"!:.*0`<
&* 
(
0<"20T !- 05" ) 1"'!% CK:E=

G7 7%[',4 5f & &* 


< %!- .' < &
0" * * 73")( !:2   5 0'
(!+01!% 2 '<07!+ 1*0"!% "!\ 0(! 0.' "24 8&
0 0'4&60 0!+;M  *&
=0!7 5!% *V @E'U
 &*  5G7 7%[*,f % *(* !+ 7
 "2.' !E!+97( < 27+ &7* "!- 017!%9 #- &60'( !+
(!+0". !/(! 0 0% ( 0=

% A5 [%'E4 , WcG dcG"


'8GE 

\  &
&* @('!+*7 WJ* &*   0,XR-2,( 0,3",** , &   WG7El
G07* G0M*0*('("= R-  ='60".R%% *0<" (! 01"!% "2 !+*<'"!- V* !E";M 0'K%M 0\= kw,* 8<'0'
&0*0( !% 4# 0!:2 "!7`M 0K%M*0E= kjW(<W  "!7X
<'&0"2,(*0"!I% 2 +0J<" *  7
(* "!+ Wa & !E3"`M
0'K%M*0 52,**  <" !-!- .* , , !-!- .* 7U'(*"! 056 04  W298 "  9<
9"2.'  0<, W(*9'1" E='F
(! 0'1!% "2 1 !+ `M 0'K%M 0)(* "!% 3"
W('< 78 7(!-&* "!E 
102%!QN =F`< 1"!% 2 <"
&
* "!: 01"!%9*#- &60<", W7 1!% C'KQ52%!+ ,"`<  "] 0
<, 8&*  BE*& cG M
MG7e cG M 4<'"
(!+0'1"!% "2 <"XR%2,( 0E=
_* W( 0 &  @( 0!< #-&6I0<"`0.R%* 0)B78&`078&
XR- <5  2  8&-!% < 
0!- 1"=_ 0!- "
 &* @E,(
07!"<" #+'&6I058&07 W(''
+ <"60".R%I0)B78<" !+&
&* @74
 0'(
0' % 0'J<'"XR%X
 (=FeM 0K%M 0, 94# 07!-2 <0}(
07!"<08&07 043" ,!+0 7807.!%"
eR%!
 )8M8
%!%  < 78 5 05 ! 10<"6eR%X
 'D(* "!% W( 07*"!RQ'
+  (
 J<5 0'J<'0'
&0*087460"!- 1= kj)(
07! <!QN " %   V* !0%!% 8&
0"2,.'  '&* 07*J<5!+0+ & 07 J0
%!+  '&  0( !% &07  1' !73
R:"+ !% 7 (''
+ J<5 0'8&0*0"=

F 5!+ "2 1!%9*#- &


3",2,( *V &60E460".R% 0DF+7 8 &*!+' <" W( 0!760".R%I0
GE*& cGM
\U "6&
"2
0< &7* "!- 01!%9 #- &60, ,&
<" 0.R%* 0)B7"2,( *V* &607

0 .YR-*I0,j+*`+-4 3,(*'&* #- & 5 %!%  '&  @U


 17' <0}( 0!7
%*`+-8 "3( '&* #- & 5 5! 0 '&  @UM8 "!-2 * ,"60.YR%I0)BE*\=
VG "!- 0'8 & " !- 0J17!+9 #: &0(*0<7!QN 7(!%*+ "!7"
2 *240W2'*<'0 ' !I% "|=6b/0"2  <'0,"

&
* !- 01"!%9*#- &60<", ) 1!+ C'KQ&6020eR%"25( 07U 
W('*'<a & "!7  1" 0'
&
2,.' 0';0. ' 0=ch4&
"2.' 0,  2 * 60".R%I0DF+7 8 7'&*
M 0Wa R+0,8"`0.R%* 0
GE*& cG M
55  
"!I "`0.YR-*I0)BE*& cG M ,< !+'&` "2
 ,""`0.YR-*I0 " E= %! 0
&
2,.' 0,&602,. 5 0'J<'0J0".R%I0'Jj+*6 -8 74<"
%! 0,<'"60.R%* 0)B7f cG M/=_ 
%!+  `#+0!-2 &* 07*J 5a "20%!% <0
@ 0,&020eR%"25( 0=
_ 0 0'<0E<5 0J0.YR-*+0GE*W!+*#+!% &* 4 5 0'J&02,(*0"
+
;'-Y M='\I0';
07 +!Q*08 "`0.R%* 0Wh7E=_
0'J0.R%* 0'EP<*GE*
0
a' R+0'J<'5"4 74 G7E=*G0280W 0'J0".R% 0'G7<
&*  <8<"54 7"U 
2 240)G7 80%! 0,0.R%I0)F!- 2 + 0' 0W('*'<5* "! *52498<'W* 4 *V4"

&
* !- 01"!%9*#- &60\=e.* eR+0)( 0'<"20T "!\4XR-"2,( 0<52" * XR%<"!:! 0!/(!+0<7*&* <'0
&** 7
<0W 
 
 "240' * "! 2 2400.R%* 0)B7<'0T '&4"'f &60,
&
" "!- 0
1!%9 #: &0E='\6+!-! 07!\*0?'  "4" (!+017!+ "2 <"eR%"25( 0< %!- .' <'0,74 - I0"!: "g=
g
E s~v{|y 6Gy IegveqXxG-ujqy p$qrYqs`t ujvex6y q
t p|zex
t  e $y e v*q6|v6{ E s~v6Y|y 
F|`e6t qex`x`E`y ex g{~Y`y xGq6 $vXq`x qeqhq6gv6{
qpgqXrYqs`t ujvex6y q
t p$zx t jg6` vYgqy Xvext q`xXx`\ey x6|jg6X vYgq6y vex
t p|qreq g X6
qpgqXrYqs`t ujvex6y q
t p$zx t jg6``t qXx`x`E`y x6|F|``6t p|qXrYq g X
q
6Gv (7  X1 h`761v (" 
t iy ey k j|Gv (  e6t pgqXrYeq g 
q
6Gv (7  X6t ~{|veqY|v ~{v6Yv`F|q6ee|761v ("  `6t p|qXr{fq g X 
qYE`XGv ("  `6t iy `y l j$61v ("  et p|qreq g 
qYE`XGv ("  `6t uwq6y X$6Gv (  e`t pgqXrYeq g

*_ W7 17!+ C'KQ52%!% W* <", (*0 .'  2 1""!% <"!: V* <" (*0"!
GE*& cGM
'" %*&0"280,"`07.YR-* 0Wh7fc M/=j8" !+ 1"2 0<"G@'<" 1'0CK-C
( 0'<"240T "!7&@< 1'0,<'" (!+01!% "2 E=
_* N$  J<"DnXW C/n;&*!+'  0J07.YR-* 0J<5" 52 + <<"6 &* "!- 0,1!+9 #: &0<""eM 0K
M 0E=_ 5gN|  JC", C"& !+ " ,!% '&* 0E 8
-!%I0'80".R% 0=F (! 0&
0*5!+(  
(* "!+ 5 0%!% 52  <,<'"eM 0'K%M 0,7 gN| ' JC '7=
_* ,gN|*' Dn`C,&*!%U
M* M [''QU4&602,( 07*7+W 0'<'0*"+7 ,&607; * " 0!+( 0!
< #%'&6I07U'(* "!% 5 * "!- 0, 0'J0".R%I0)BE*\=_* ,gN|  8C/n; *5  '&
&  0  0'
(* "!+9"2*%!+0'J<5 0J<'04&0*0=
Fragmento de Cdigo 2-2. La clase ConeYoyo del programa ConeYoyoApp.java

tX`e y ~~ qXw6vG(7 X


t
zte$y rYqYgv[|q6~XFg6e  w
t
t 6~Y|veqv Xq6v`z6;Fy $jev``uwvY$ qxGq6XXveq6gq6~{v

t 

teee y ~F76Gv ( `|
 t
 t
 hvYgqY~eFg6eeg%
  t)gqYg6$uwzgqgvB[vYW*|q`g6$uz`7g%
e t)gqYg6$uwzJ|gq6X qvB[vYW*|q6Y|`Iuwz`7g%
t eveq6gq~v   eXveq`
[vY `vXq6|q6X~v6g%
zt
tgXgqYgv t g )  qI`t  t  xe%
t)gqYg6$uwF|``  e [vY5gqYg6$uwjgXe$|Ygqgve%
t
t5$|q6Y qgv
t {v|$XvY,"v`~g6|zY|  t  t  I  t  $-
  t)gqYg6$uwF|``  e hXvYW*|q`g6$uFgeX|gq6 qve%
 t
 t7`Xv~{6v hYv)v6  t  t -

 t}~v t {v eveq6gq6X~v   Xv`q6g%
e t
zt  wt qexex`\ey x6  * %
X t  X* t qex`xe\`y x`  e* %

t  X*  t qexex`\ey x6g~{6v -


` t
t5$|q6Y qgv
t {v|$XvY,"v`~g6|zY|lQ  t I  t   t  I%
 t)gqYg6$uwF|``  e hXvYW*|q`g6$uFgeX|gq6 qve%
 t
z  tgXgqYgv
t g )+ Q  qYI6t  t  xe%
z t)gqYg6$uwF|``  e  [vY5gqYg6$uwjgXe$|Ygqgve%
zt
zezt7`Xv~{6v hYv)v6  t  t -
z t}~v t Yv eveq6gq6X~v   Xv`q6g%
zt
z t  wt qexex`\ey x6  * %
z t  X* t qex`xe\`y x`  e*  %
z  t  X* " t qexex`\ey x6g~{6v -
zt
 t  wt ~`uGey v6g-
 t
` t  v6xGY
76Gv ( G~{6Y$$~g6
zt
e tDeee y ~|q`X~YXFgej`vYI*jg|
tgvX$XI  
w
6 t
t
 t  
v6Xx6~ qew6XOv (7 
T'%nm 'F-  % *'
9!:. 0`<&   8<5  1"'!% C'K+ 2,6-!+ }j-  % ,&602405 (*"!+&*  <'}LU
GE*EU#
M ""QU
M4G'+E='w #: *,,f2"! 0,<'& 25( 0;M2Z* 0'<'04&0"2,*8
6+ 8&* 
U* 'N*&020W 0T   0"!+( 0!< #-&6I0)(* "!% 5 0'8& "25(
0''=
_* &*  )w-  % W(! 07( 0!+&  0 5 8#+0"!-2 <&
0"25(* !I- !\*0<08&072(*07*
 
;'-Y M4"
%!+,XR-2,( "!%J<","(!- 2 % 0<' 2 *240 "2 "]*0E=/0"!<*#+'&` 07U
I0'<0
 0'(!: 2 + 0'J<'" 2 *240 "2 "]*0&072( ! +5,
0<0,&
0"25( 07*
 <102%!QN 7='ch
eR%"2( 0,<54&
"25(
0,<'*#- <'05" &*  )w-  % *8 "!+0
E ? #E ( B`I ? B \D E /='\ & "2,( 0,'(*&* #- &
, 1'0"2*-!QN ,3
,6 9&*!%'  <'0

M43"W 0 !%9&02,( !I- <'0&


040%! 0''= kj" '&&* 0E 24046 5.  <"!% W(* "!%  ' + !3
 1072*%!ON 
 &6072( "!I% < ,"
%!%W(!- 28% *0J<5 0'42 *240'(* "!+9"2%!+0 8<''&* !QU
`#%!% 8&60E!%9< 0 ne=
u E`v
t Yv$Iy uy $y rYev  qeX+$y uGy $y rYv t E ? ;E ( B` ? B EJ E "%
_  W !%&  6<'W4Z*+0<0,j:  %
 '3"*%7l
~6uht Xe6t p$zx
t Iy et `ve`uwv$
F-  + *< &  " <<")J+"JM44 '(*"!+&*  <}/L"UB77U#M *QUMG'"+\=
e ee y ~rY`y x{v$7euv6 |y ~vXXIy {
eeuj
kj" '&&* 07* " f'2"!+0I0 6<'4 Z! % &
874+W(!- 2 % 0\=
rYy x{vI$y uGy Iy rev  q`XIy {`|
_* . *<'"!% J<"}j-  - 
07l

GEOMETRY_NOT_SHARED
Se generan normalmente junto las posiciones.
GENERATE_NORMALS_INWARD
Normalmente se lanzan junto con las superficies.
GENERATE_TEXTURE_COORDS
Se generan las coordenadas de textura.
GEOMETRY_NOT_SHARED
La geometra creada no se compartir con ningn otro nodo.

rYy x{v eveq6gq~{v`Iy { q`$y x


eXveq6gqY~{vq6`veq6gq6X~{ve
kj" '&&* 07* ,  ( !- "*&* <5 *.'( !I+<" "*<'0W5*7I% /=*_ 0';0.YR-*+0,/L"UGE*EU
M#
M "" 9"4&0"25('*6+0(*0"!\29J<5"80.YR-* 05B7*'7hU*& <' W 0
( 0+ &*  27+4- ",(!+07( 0) 0'<0''+" \=X  " 0"!\  <'0)(* "!% }*I%
(&* #: &
"&602,(
0E*7 '+   &
&* 0* '<0\=
rYy x{v eveq6gq~{v`|
kj" '&&* 07* ,  ( !- "*&* 5(!- *&* (* 6<'" (!- 2 % 0 I0<'  J*.(* "!I+
/ 5'
(* "!- 7 &* 5.'  & 5(*0!<'*#%'&` 0E=

%! 0'8&07 6%!:*&6 0!%8 '< &  0*  8<)%LUGE*7U#M "LU6MG'+)( "!-2  
(&* #: &
&* @78<'W.* 7
<""!% ,F-  + *,8" 28072
I0<5 &*!+ &
&  @"=j*<
&0 ' + !\ (*'&* #- & '&* @8<X
 H( !% 529 6#+0!-2 '&  @"=
      0    &

    

 "!+ & !-' "!"0.R%I0'T  *  'U


 W*'&
  7 &* 
WJ7%.M;M8*J*'.*&* 
=
*&a 8<Z J'.&* 
8<'
&!- .7(!- 2 % 0.  '<'0'J7; *Z"!I% &U &0"240
(
I0'UN|*' ;M( 0N 1'07 0!%"  " 0=_* J*.*&* 
J*8 "!%94" )(!+@*?' 2
 &
&* @7'U'(*"!+0, 
 T "!%20T  "!: 8&*  2 *+29*- &
 0" 
Y oUG0" 0".! oU VG'&` 0"!.oU
b/*?B00!+< oF  <" ( "!% ('&  #- &
!<' I0'!% &* 07* <'0'8&60E 0' Z"!I% &

j0 7l "6 6+"!- 
&0W * <0, !:!: .* 4&0"20<EN$,( "!% 5!%(!+ % !  "!- &  0*87
 02.!-<"5 &   '=/0!XR-25( 0EU "  pw
5! *#- "!+, I0<"  8&* 
'l
"  QU
"  EU
" "U " '*QU
F' \UF' & -E"U F % -QU
M8" & -\=4& '<' & 
05
f'2!%05
< &
,*f'2"! 0<"" "2
I08<" 7UM 5 %!+ 5  <" &
"e% ( 0<5 0'
< * 0'q= 9 9W  <" & 5J% (*0<"&602 4#- 0 +<" 2,( W(!%&*  @7'U 9f 9W  <" & 5";- ( 0<
&0"2 4#- 0 +<<07. W(!+'&  * @Ur
M 9 95( "!% 5.
M
 '=/07! 0," '
&* 
3"52 " (' 8  " 0!%878&02 4#- 0+ "
+<' 2,( 5('!+'&  * @"=
b\0'<" 8+ 8&*  2  "249% & 8+94*( 3*%pgqXrYqs`t rYve~YujqX$`t =/6 W(* '3" 
< #- 4  !- 8&*  8F"  pj&0280(!%&   81*Z"!- &
8 ". -!+ '&`+ = %!+ 8&* 

29f %  J< &* 7
<"8<, 8&* 
8F" E=' ) 1"'!+ CKQ7U(*0<"20'T *"!7 " 1* 
<, 8&*  8<'"9!:.*0"|=

< 4 Z"!I- &


<W'40.YR-I0 ' * " (*0<!QN (*'&* #- &
!\a* 6% &* *%! 0,0.YR:*I0'
B
%& L * %U!+"(!%*+ <7*0,&600"! <"* '< U*&60 0!+'=
(*"!$#- &   0!-2 " U
M
&007! <* '< 8<'+ ? -!- 7='j0"!:2 " 2
 *,*  J* 1"' 7 8&* 
''l

Point* (para coordenadas)


Color* (para colores)
Vector* (para superficies normales)
TexCoord* (para coordenadas de textura)

.*
"!$  35 8&007! <* <  0".R% 0'/0"Yo\07, '&
* !- 0( !% W( 0 &* 07* "!
&
<" 4 *Z!I% &E=_ 0J0-! 0'8<' I0J 0407( &* 0E* " 'U
<(**<" "*<0,<'&
@"20, ,!+7 <"!- &

" (!- 2 % *0E=/0!eR%2,( 0EU
 W( 0'<!QN < #:  !E&60 0! "J07.R%* 0,h0" 0.! o(* "!% & <
Z!I- &
M 08&0" 0"!%8<'*(!- 2 %  ,+!:( 0" "
%!%5 08&0" 0"!%J<5 0'T *Z"!I% &=
k
 W(*"!-2  5 5  2 '&  @U
 "!%9*'&  "!-  J(*"!$#: &* 
0!-2  ' M(
0!E 0 
I0
 0'J0".R%I0'r
 VG&6 0.! o= k` W( !-2  "
2 7( '0<" *?
%!+ U'( 0<"!QN &  + !  5 
&007! <* '< 8<'+ ? -!- =
_*0J07.YR-*I0'!
 s8 Y oG!+7(!%*"
+ X
 T 3 *+"!: 0E
f T U*3@ 0 5* (* "!%
%!+  `#+0!-2 &* 07*J<52 %!- &
87d * * 7V* '< '=

G0240 0'<  8&*  f


%  J<'
&* 
<"8<", 8&*  8 . %!% '&`+ 8F" pU*
 2,( 0"!I+ 
 4#% "2   "!- V "!  &078 8&0E
%!:&` 0!%;M24Z 0'<'0''l
G07
-!-&`+0"!%J<" 
 '3"*%7l
p|qrYqXs`t rve~ujq$
_* 8&* 
8F" pj&
* " &
*, %   V* "8< !+'&`+ 2+7(!+01"!+ 24 8  )( ! 0
(!+0(*0"!+&* 0E*  5. *5( "!% , 8&* 
,/7
Y pUG7 7. pUB I7. pUM8/% LG'7 pX='F
(* "!I- &* "!F'  /(! 07( 0!+&* 07* 5 5.  )( !+ }Y QUG . QU
M8/& LG  L=*_ 0
&0 6-!:*&6I07!+   <0'4 3N* 97J< ( 0E . (* "!+ ,6+ J'.&   '=*" 'M
" & -'-  4&07YR:'
 0 2  !<'&07 6%!Q&6I0!+l
`X v $g
G07
-!- M*5  &* "  V 580.R%*+0F' &0 8&00!+<* <  oUo=
`X v $ | eqY`s`| eq
G07
-!- M*5  &* "  V 580.R%*+0F' &0 8&00!+<* < ;sh '( '&* #- & <' =
`X v $ | eqYk  e
G07
-!- M*5  &* "  V 580.R%*+0F' <
<',"6 "!-!+ M4'( '&  #- &
<0\=
`X v $gX` v e
G07
-!- M*5  &* "  V 580.R%*+0F' <
<'W 0'J<' I0'8<'0-! 0,0".R% 0,' \=
`X v $gX` v xjg
G07
-!- M*5  &* "  V 580.R%*+0F' <
<'W 0'J<' I0'8<'0-! 0,0".R% 0,' \=
_  W "!+&  6<'W4Z*+0<0J<"F' *
 '3"*%7l
p|qrYqXs`t rve~ujq$
_* 8&* 
8F" pj&
* " &
*, %   V* "8< !+'&`+ 2+7(!+01"!+ 24 8  )( ! 0
(!+0(*0"!+&* 0E*  5. *5( "!% , 8&* 
,/7
Y pUG7 7. pUB I7. pUM8/% LG'7 pX='F
(* "!I- &* "!F'  /(! 07( 0!+&* 07* 5 5.  )( !+ } Y QUG . QU
M8/& LG  L=*_ 0

2 Z* 0'<0   <'08 '3""N* 98< ( 07 . ( !% , J'.&   = F' *"M8" &-

% "*""8&0E{R:
I0* 2  "!"<,2ZI0'<0''l
rYy x{v|$ Xq`s`| eq
rYy x{v|$ XqY  e
kj" '&&* 07* 4e   0"!< -( <
<5 0;  " 0"!%4(&* #: &
<'0=
e6 veq6wRv tq g`X v X
w*  *74--*
 0'J<' I0J<"" u /T07 1 " J 5 0J<" *I0'8&0!-!%(*0*< 
 
< %( E=
|y qLrYy xqexex6gee v e
kj" '&&* 07* "X  " 0!"<6+%(  "X &6I0!"'2 <
2 *240M4" \ /=
rYy xq`xex6gX` v e {X` v e
kj" '&&* 07* "X  " 0!"<6+%(  "X &6I0!"'2 <5 0;%( ;LnMJ C\=
rYy xeegee v e {ee v e
kj" '&&* 07* "X  " 0!"<6+%(  "X &6I0!\!++ <5 0';%( ;LnMJIC %a' !
 `,LnK7IC'=
rYy xeegee v e
kj" '&&* 07* "X  " 0!"<6+%(  "X &6I0!\!++ <'2 240W2 0'JLn=
rYy xBXveeqgv6g
G 1 "e * " 0!"<  *'&` 0"!O=
rYy xBXveeqgv6gX` v e
kj" '&&* 07* "X  " 0!"<6+%(  5 W*1 '&* @EJ<"`%( Ln*=
rYy xqYY6 {v6g
kj" '&&* 07* 4 0'<0 0'8&0"25(
0E 7+8< %(   T   0"!+4 .*
0  I0''=
rYy xqYY6 {v6gee v eg
kj" '&&* 07* 4 0'<0 0'8&0"25(
0E 7+8<`%( W(* "!+9"2*-!+08  T   0"!%8 ".*0   0'U
M
 %f 5 0'T * " 0!+20'<" #: &
<0874+%"( E=
i M8* :Ng 'U(*"!+0)(!%<'&  . J< #+"!+*&* 87-!%5 08&07
%!:&` 0!+;M24ZI0<'0'J<
w
" pU <'".' <05 " f2"!+0MJ% ( 0<5 0'J< I0='/0"!7XR-25( 07U*" ''< #: "!+<
"  QU(
0!%3% *52ZI0<'0,&07 6%!:*&6 0!Ol
`X v6zx6gx`6ee vws`YxX6`e v {xe6ee vw{%
3"'(!+ %!%;M 0<0'U(* "!+ 2*-!+0J<"5('*<0#- 0+ 
 <<07.' W(!%'&*  07'U'
0
 2,( W(!+'&   @"=

b\0'<"  8&   8' pj+ "*"2 "2,.!+0'(f.  &0= !+ "  pUa *M;sh = "!+
" ' p 02 "2.! 0'807Js`U UMJ6= !- F' % - p 02 "2.!+0'J0EJs6U U
eU
MT=
[ '
'/"

_ 080.YR-* 0',/7 .pB


0!:2  2
 5!%"('!+*7 7&60'0"!+<"" <" ;<"5; Z"!I- &
U* *3*
 "2. Z(<""!%7(!%' "
+ !\ W(*0 &* @7J<W* 5 2 1U6#:+<"5(+0<"5  V'U
 0&
  V* &* @74(* '&  6<,"80E <0EU0%! 0,<'  0)( 0' &* 0* "g=_ 0'J&0E
-!-&` 0!+8<'5 
&* 
,/7 . pj
02
M4 2  !+8 5 0';<""  pU* ?&(
I0543"<'* ' *780.R%I0'
/7 Y pX=
_  W !%&  6<'W4Z*+0<0J<")
I
 '3"*%7l
p|qrYqXs`t rve~ujq$
_* 8&* 
,7 .pj<' &  " <4<'5 8&   Jj' pX= B <' eR%"2,( "!<", 8&* 

/7 Y pG!+(!%*
 58 0" 0W(
 0,7"4'( '&* 0<<'0''U%!%J0,&* *-!+0,<" 24
 0E =
G<29J<5 0'2Z* 0'<'0J<'F"  pU 8&   "
Y pj+  2ZI0<'0'4 < &* 07 " U
" 1 08<, 08&* " (
0<'240T !E 3NIl
| eqX`xy |q6~v6I6y {gzY
w*  *5 <   &* }&*  < * 7-!% )("I0M4" (''
 0)(7n=
| eqX`xy gq6~v t`Xq6gvex6 6y {|zY
w*  *"6&* <7!+ <'0,<'5 <  *&* 9)&   <'' * 
%!%6 )(
I0M*(
 0)(7n=
| eqX`xy |q6~v I y $zY

w*  *5 <   &* )_  "'a* $+  /
%!+, W(
I0M*(" 0W(En=_* <   &* W_
 1" "6 `
q6Ys Qs % vGq{ Q % vGq6Yg Q

[ '
'4G" 
_ 080.YR-* 0'G .pB!+"(!% 7 74&0" 0!QU3W(<*!/(* "!% 5; Z!I: &
U'(! 0E( <" <
<52  !- "U' .' 7U40-!+00.R%I0  * |=_ 0'8&0" 0"!+J*'( '&  #- &
"4&07G7 7+p
0)G Y - pUM8
@" 0)( "!% <'  0';<"5.
M
 0,&6072 4#: 0 "
 < 2,( W(!+'&*  @7=_
0'
0.YR-*I0'B + pw(*&* #: &
"8&
0 0"!7&607240)' &02.' * &* @E8<4   0!+!+0eR%07U *"!+<
M4 V' !
6/=_ 080.YR- 0G7 7k - pw( '&  #- &
; * " 07!"<"4-!+  ( !: *&* 7U <"29
<!
6= (
0!< #%'&6I07U' 0'J0".R%I0B7 7+ pw0807(* &
0
= !- , 0;%(
0'J<<" *I0'J<
 "2 ]*05. M
 U 0'T * " 0!%;<"&60 0!%  7J<" <o5a  C5 *&    *= !% 4- (
0'
<< *+0J<"&02 4#- 0+ 
 < 2,( W(!+'&  * @"U 0T   0"!+T  4
%!+,o7U oM)n Uo
 *&* ** *=
wW* *0EU 08&07 6-!-*&I0!+(* "!+ 5 8&* 
B . pw078* 2  "!+8 5 0J<'j' pU
*?*&
(
I0543"<" *" "40.YR-* 0'G w p=_* 8&* 
G . pB 0%  2Z*I0<'0'
<" &  0  'U( 0"!E 0@7 0%!+  8&
07 02ZI0'<083*Wa"!+'<' 78< 8'(!+&*  
"  pX=
[ 1" T '&
4J&0E6 " 7+&*!%' "!7&60E
 7+(* "!% 5 0'8&60 0!+43" 5 * 
!+7( % < "27+ & !- '&&* @E8<0.R%I0'T  *  =0"!EXR%"2,( 07U
6 6$zY|Lp$BhvW7 6|zY| t   t   t  %
eR%"2( !- V* 60".R%I0)B7 % \! 0eR%03"W(*0<7!QN W  ! 
4  !- T '&
'=/0'<!QN  "!\f
- 
&*!+' "!E" &*  3*&
07
  1 4  "!: 8&0'
+ +J<&0" 0"!%'=`[. XR%0)(*0<"20'T *!E"
eR%"2( 0,<5* <"+ 8&*  83 (* !%'& 4 !+ '127 0<",B@< 10C'K{n =
ty u6 pgqXrYqXs`t rYv`~Yuwq|6t O
t
zt{~ qe{F `$Ygq6g
teee y ~qX|y ~\$y q676 6$zY|Lp$G[vY} 6|zY| t  I  t   t  -
teee y ~qX|y ~\$y q676 6$zYXrv6gxevBhXvY)76 6|zY$  t  t   t  -
teee y ~qX|y ~\$y q676 6$zY`qe`[v{}76 6|zY|  t   t  I t  %
teee y ~qX|y ~\$y q676 6$zY`q6uwq6$y B[vY)76 6|zY| t  t   t  %
 teee y ~qX|y ~\$y q676 6$zY`~ qhv) 6|zY|  t  I t  t  -
 teee y ~qX|y ~\$y q676 6$zYuwqeev6YqBhXvY)76 6$zY| t  I  t  t  -
  tDeee y ~qX|y ~\$y q676 6$zY` q6~B[vY)76 6|zY$ t  I t  t  -
e tDeee y ~qX|y ~\$y q676 6$zYv`6gBhv) 6|zY|  t   t   t  -
t

[ '
'G I 7
_ 080.YR-* 0'JG I7.p#-!%&**7+"2
 5!%7(!+ 7
+ "8(!$#: &*  0!-2 " 8; Z!I- &

"*3"4+ 2,.' Z",('<'7!+(!% 7+ "!E < !+'&
&  @4<5* 4#-"
+<5 
V80<' 0 <0E=
wW* *0EU 08&07 6-!-*&I0!+8<5 J&*  JG I. p078* 2  "!+8 5 0J<j' pX=
k8"2.* ! 1'0EU 0J0.YR-*+0JG . p "]* <""2,&*a 0'2Z*I0<'0'83")
0, 7 &*
%!+ 7
 8&*  8F"  pX=
_  W !%&  6<'W4Z*+0<0J<"B I 7+*
 '3"*%7l
p|qrYqXs`t rve~ujq$
*_ 8&* 
JB I7.pj<*&* 
<""4<'5 8&* 
4" pX=*B < eR%2,( !<5 8&   
G .pB!+"(!% 7 W8
0 0 *'&6I0!7"8'( &  0<<'0'U
%!+80,&  *-!+0
< 2"  07*=`G<"298<, 02ZI0'<'08<F" pU* 8&  
JG . pF%  7
2Z* 0'<08 '<" &  0*  'U  1'*0J<"5 08&*  ( 0'<"20T "!7 '3"N l
| eqX v6Y$eg
w*  *5 , 0 1" %<<" 4 &6I0!L=
| eqX v6Y$ t6Yq6gv`x6g
w*  *"6&* <7!+ <'0,<'5 5 07 1 - <<"+ *'&` 0"!O=
rYy xG~Y|{ 7v`~6|zYer ve~6|zY`r
kj" '&&
&* 07 ,6 4 &6 07!\(* "!+ ,3" ' *(!+0<7*&6I0,&*!:
V* <0<5 0'T '&6I0"!%T \n[M; *C\=
| eqX`xeX| v`~6|zer
B " &* 4M8<  *" (
I0,<'" (!+0'<&` 0<" 4 &6 0"!"M4e &6I07!' En*=
rYy xBX6$ujq y {v6g
j0!-2   V*  4 *'&`+0"!O=
rYy xBX6$ujq y {v6 ve~g`$z{`r
kj" '&&* 07* "X  " 0!"<6+4 *'&`+0"!7 5 5 0!:24 "  V '&* @8<e &6I07!' En*=
| eqX`q6X6 v6 ve~g`Iz{`r
w*  *"697
17' 0,!+ '<" "87%!+,6+8 &`I0!M4"X '&` 0"!$ \n U*e  " 0"!<'* ' I0
6+9,!%%!-  1" <'0, "6  10
0 xoU$ yQ=

[ '
';\%LG
i M8@ 0<08&* 
8%LG pw3"*W('<* "!  )( "!% 5!%"('!+*
 "!E 
w
&007! <* '< 8<'+ ? -!- <"5; Z!I- &
7l /%LG' "M8/%LG+O=6&LG 
2 
% "*, 8&0'0!+<"" < 8<4+ ? -'!% &607280)" )(* "!+eR% <&0'0!+< <  'U
/% LG'7 &0280WJ%!: 0 'UQU! =
_ 08&
0 6-!:*&6I07!+(* "!+ W 8&* 
8/% LG+ p+ 2. Z8
078 2  !+8 5 0J<
"  pX= &0"240W 8&   G7 7. pU* 8&  
8/% LB'7 pF+ 2,(
0&
0- *72Z 0<0'
<" &  0  'U( 0"!E 0@7 0%!+  4&07 02ZI0'<083*Wa"!+'<' 78< 8'(!+&*  =
         &    - 

F 0'J1"!%9 #- &60'87H( 0!0!+<'7 '<'0!QU 0'<'07U <


<" 29J *&*   0%!% 9
17 0,  29
&0"25(  &
<0<5 0240'<" 0J 2,.*07U 9520<" <0M!% <"!- V* <'0,&0E8< I0
. * <04; Z"!I% &'=*G07J *  ,[U &
< 0.R%*+0W7*7<'".*"!QN 5  2 !E *
2Z* 0'<0, +;7%Y M F( "!% 5!% #+"!%7 &* "!E"
0M4@ 0W 007.YR%I0);7-Y M"= "!+  "!
29('!+&* 0EU;'%w M '(!+&* * . %!% &6+ U'( 0! 05 0J07.YR-*I0'
!+*#+!+*&  <0J
074eR%2( "!%J<"5* <*8.&   =
\ J*'.*&* *J <"  <87J%!%J&
 10"!ON (!- *& ( " l

Geometra basada en vrtices no indexados (cada vez que se renderiza un objeto


visual, sus vrtices slo podran usarse una vez)
Geometra basada en vrtices indexados (cada vez que se renderiza un objeto visual,
sus vrtices se podran reutilizar)
Otros objetos visuales (las clases Raster, Text3D, y CompressedGeometry)

\  &
&* @4&*'.'!%5 8<0'(!- 24"!% 8& +10!QN ='69"!-.*0"6<'&*  J<'WJ'-YMJM
 J'.&* 
J 52'%!+ " ) 1'!% C'K{n6oEl

[ '
,;7%.M`[:+%M
G0240 )(
0<"!QNg <"<7*& !<'5 0 02.!%J<5 8&* 
U J.&   8<W;74%YM
( 0'<!QN * "!  )( "!% ( '&  #- &
"!\(
I0'UN|*' ';M(
0N 1'07 0!%"  " 0 -!- 9
17 0;M
&** '<"!-  9 "!+0
=/6 0('!- 2 % *0.  <087; *Z"!I% &
J0E8*.*&*  8<'5 &*  
". %!% '&`+ 5J'%Y M6[-+ MU 35  <" & ,3& '< 5" % "54 "!-!- *M43"52 
% *5 0
< * 0'J<5 0T Z!I- &
=
/0!eR%"2,( 0EU
6
5*
W80.YR-*+0W;'%Y M6[-+ M,( "!+ '( '&  #- &
"!EJ-!- 9
17 07U 

< #- W"8 "!:!+ M4<'%!%4 2
I0''l4" 247
 0)( !+ & < 4 Z"!I% &
7=*B <" " "2
I0
<  "!-!% M2 
% *W 5 0'&
  V* &* @78<'5 8&
007! <. <" ( !% J Z"!I% & 3*
(<, "!< #:  <0,&
080.R%*+0}
k pw0 2  "! =eB<'"29J<5 5 0'&
  V* &* @78<
 8&00!+<'7* < 'U
 W(<4<'*#- !0-! 0;%!-4 "!-!% *M J07(*&* 0 " ( !-  " 2 '&
* "!7"
&0" 0"!QU '(!$#: &* W
0!:2 gUM 8&00! <7 '<' 'J<' *? -!% E='\6 08 "!-!% *M 83"
&0
%  8&60'0! <" < U 0'8&60 0!+'U J(*"!$#- &* 
0!:2  ;M 
&007! <* '< 8<'+ ? -!- 'U

0 08O "!:!+ *M 8<< *+0 =
iw MJ%!+(*  0'8 4 ' < <W'40.YR% 0);7-Y M`-+% Ml
1. Construccin de un objeto vaco.
2. Rellenar el objeto con datos.

3. Asociar (referenciar) el objeto desde (uno o ms) objetos Shape3D.


K/%5*G7*6--
47J"W8%IWT7%.Me[:+%M; m
 *<0*&0E
%!- M*)( 0!/(!- 24!+ 4 V807.YR-*I0);'-YM`:+%MU 
<".8<*#- !
[
<'08&
0 l

el nmero de vrtices (arrays de elementos) necesarios.


el tipo de datos (coordenadas de localizacin, color, superficie normal, y/o
coordenadas de textura) a almacenar en cada vrtice. Esto se llama formato del
vrtice.

iw M8
@" 0&
0 %!:&`I07!\(* "!% 5J'%YM6[-+Ml
G07
-!-&`+0"!<W;7%.M`[:%%M
ve6ujv| $gq $y {erYv6 gvsE`e{IXy {erv6 vXs`6$ujqX
G07
-!- M*5"80.R%* 0);'%YM6[-+MJ * '&N 0,&6074*f2!+0,<'4 Z! % &
;M8J# 0"!:2 I0
(&* #: &
<'0E= kjW(<"" ]* '<" !E.  <"!% 8 wj(* "!% <" &*!- .' !\ 0';< I0J<"& '<
Z!I- &
7=_ 8&07
+ %*
 (* "!% '(*&* #- &6 "!"e# 0"!-2 I0
07l

COORDINATES:
Especifica que este array de vrtice contiene coordenadas. Es obligatorio.
NORMALS:
Especifica que este array de vrtice contiene superficies normales.
COLOR_3:
Especifica que este array de vrtice contiene colores sin transparencia.
COLOR_4:
Especifica que este array de vrtice contiene colores con transparencia.
TEXTURE_COORDINATE_2:
Especifica que este array de vrtice contiene coordenadas de textura 2D.
TEXTURE_COORDINATE_3:
Especifica que este array de vrtice contiene coordenadas de textura 3D.

/ 0!&
< W.* 7 <!%   '&
&* 07 '<' 7U
*& !+ 5 
 !Q* 247+60".R%I0};7%YM6[-%%M
&60!:!+'(*0*<" "
+ !:!% M"= B '<' W 0<6+04 !:!% *M ;% *"e+ 2 7]
0,"I %LG"
Q=
VG' 20'8&6@7240-!% . XR- 

 &60E
%!:&6I0"!QU( ! 0}(!: 2!+0W!%'&607! <"2083*

;'-YM`-+%M4' ,&    .*6-!% &6 E=/07!E 0+ "
I0EU!%'  247+,  "2 "2408 "
&0 6-!:*&6I07!"<","* <**J*.*&*  'U(*0"!EXR-2,( 0**[-+ M= cB80".R%I0**[-+ M
< &*!: .,"4&60E{RQ
I0<4 Z!I- &
'UM4&
< <0'; *Z"!I% &J<*#- * 0('
I0'#: *  J<

 * 5N$  7='6&07
%&` 0!M80%! 0'2Z*I0<'0'J<}'  [-+M8
02
M8 2  !%8 5 0';<"
4*"( !+&*  W;7%.M`:+%M"=' * [:+%M8  ?(  &
&6072498<'+ "  529
<" +E=
 !+ 1247 0<,B@'< 1'0C'K% 26-!% 5 &   z
L' J<'"*(! 01"!% "2 ? e(("= R% *  3"
*
4  !- 0J07.YR-*I0',* [-+ M,( "!+ <" .R% "!EN$  83*5!%7(!%
7+  0'8XR-8
 'U (5C
M )=
60".R%I0W% L q *h 'U & !+' W'40".R% 0,&078<'0'T *Z"!I% & ( !% <" .'R% "!E"* 5N$ ' 
%!%
"  0'
U &08
@" 0W 0';<" * 0J<", 8&0'0! <"" < 8<5 0'&
"  V* '&  @"=60.YR-*I0W L q c 
 "2. ZJ% "*<'0T Z"!I% &
'U'( ! 0}( !-2  &0" 0"!!
6U N*&60240W J&00"!+<* <" J<"
( 0 &* @78<&
<" 8 Z"!I% &
E=/0!E 0+ "
 07U 5N$ ' <'"6eR%X
 (D( 0<"!QN < .'YR- "!  &07
&0" 0"!+ 
 "!Q( 0 <'0'J<<"5; *Z!I% &5a + 60%! 0\= " 27 7U "60".R%I0
L  {j ';+  < VT Z"!I% &
8&60E4&600"!+<* <" ;M8< *+0J<"&0 0"!( !% & '<' 4 Z!I- &
7=
%
kjW( 0'<!QN 8< .'YR- !7&  &
0WN|* 8&074&0 0!+%!Q( 0" <'0'U"* 5gN| ' )( 0!&
<" W(* "!%XR-
<8 Z"!I% &
'= .  !$  , *0<", 07(*"!+ '&  @74 wj(* !% , 0T# 07!-2 * 08<, 0T Z"! % &

<, 08eR%8
 (,N
M )
Fragmento de cdigo 2-4, Consctructores de GeometryArray.

t6~{6|$ vhejOp|vZt6vBgvegvXYv`{|qv6vp|v|'
t Xy Xv $gq qXsey '\Xy vX[vYDy Xv $|q XXy Yv $gq t F?? E %
zt
t 6~{6|$ vhejOp|vZ
 t6vBgvegvXYv`{|qvvp|v|(

t Xy Xv $gq qXsey  (\Xy vXwhXv{ey v Igq ey v $|q t F?? E
[Xy v Igq t D
?1 ? BXzX%
t
t
t 6~{6|$ vhejOp|vZ
 t6vBgvegvXYv`{|qv6vp|z
v )
 
Xy Xv $gq qXsey  )y XvXwhXv{ey v $gq   eXy v Igq t F?? E
 t
[Xy v Igq t D
?1 ? BXzX%
  t
~ &* 
4#
L' ;< w? e(("= R% *  8<" #+"!%"
+<5 &* 
zL' ;< #:  < 
} [ "'F
w?' = R-  U*3"@ 0W* WJ07.YR-* 0}'  -+% M"=w.208 *17!% "!Q 0'J<&0'1"!\
&* 
&0"!-!-&6+ E=


UJ5'w 7*  ,wI'8"64%IWT74%YM6[-%%M

 ('ZJ<&07 %!- !7"`0.YR-* 0W;'%YM6[:+MU  17 "20T   0"!%4 5 08 "!-!% M
'U
w
&0"!-!-( 0E
< 7
<0, , 0;# 0!-2 * 0J<", 0T Z!I- &
8 * 1* <0='\6 0 W( 0'<!ON 5a '&
"!
Z!I- &
W( 0!' Z"!I% &
U 05 "*<0)4 "!:!+ *M,(* !%  " 
1 !7<'  0'J 52,& a0; Z!I- &
8&07
* 
@" ,  "24 < <52ZI0<0\=_*02Z* 0'<'08< (
0E . J
07"l
_  W !%&  6<'W4Z*+0<0J<"5;'%YM6[-+M
;'-YM`-+%M4 *'(!+&* *5( !% }/7 [-%%M"U''  [-%%MU
F- 7
7 *[-+MU
 [-+%
MU;74%Y M %: 6-+% MU
]
M "g "& L'T'-Y M`-+% M=
rYy x{vgEe`|x6y qgv6$y {
y xevXs`I eqXl 6~e6gxy Xqve
rYy x{vgEe`|x6y qgv6$y {
y xevXs`x`6ee v  6~{X6gxy qgvX
rYy x{vgEe`|x6y qgv6$y {
y xevXs`X*6y { ~{X6gxy qY|vX
kj" '&&* 07* , 8&0'0!+<* < 4 
0&  <" 8&074X Z"!I% &
"4"*N$
< &
'( '&  #- &
<0
(* "!+ ,6 07.YR-*I0\=
rYy x{vgEe`|x6y qgveYIy { y Xx`vseI `ql  ~`6gx6y qgvX{
rYy x{vgEe`|x6y qgveYIy { y Xx`vseYxe6ee v  ~X6|x6y qgvX{
rYy x{vgEe`|x6y qgveYIy { y Xx`vsee*6y {+  6~`6gx6y qve{
kj" '&&* 07* , 8&0'0!+<* < 4 
0&  <" 8&07 0T Z!I- &
82(*V  <0W(*0"!7N| <" &
(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{vgE6 6$$y {
y XxXvXs`$ eqk  6~{6 6g
rYy x{vgE6 6$$y {
y XxXvXs` gv  6~{` 6g
rYy x{vgE6 6$$y {
y XxXvXs`Y `l ~{6 6g
kj" '&&* 07* "6&0 0! 
0&  <0,&60E4e *Z"!I% &78"N|
< &
'(*'&* #- & <0)( !% 6+
0.YR-*I0\=
rYy x{vgE6 6$y {y xevs`| eqk  ~6 6{
rYy x{vgE6 6$y {y xevs`X gv  ~6 6{
rYy x{vgE6 6$y {y xevs` 6+ n ~{` 6g{
kj" '&&* 07* , 08&0" 0"!%4 
0&  <'08&
0 0'T Z"!I% &825(*V*  <'0)(*0"!EN| <" &
(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{v$6$ujq Iy Y
y xevs`$ eqYk   6$uwq6
rYy x{v$6$ujq Iy Y
y xevs`7vX~|`l X6$ujq
kj" '&&* 07* , *"(*"!$#- &* 5*0"!:2 "6 
0'&* '<' &
0"X Z! % &
"4N| <" &,(&* #- &
<'0
(* "!+ ,6 07.YR-*I0

rYy x{v$6$ujq Iy {


y Xxevs`$ eqYY 
X`Iujq {
rYy x{v$6$ujq Iy {
y Xxevs`"v`~6l  
` ujq` {
kj" '&&* 07* , J(!I#- &* 
0!-2  8 
0&  <" 8&0 0T Z!I- &
82(*V* 7
<0)( 0"!E
N| <" &(&* #- &
<'0)(* "!%  0".R% 0\=
rYy x{v vXs$egv``6gx6y qv6Iy {
y xevs6| Xqk  evXs`6gxe
rYy x{v vXs$egv``6gx6y qv6Iy {
y xevs6X*6y + '~`6gx6y qve
kj" '&&* 07* , &600"!+< <" < *?
-'!+ , 0&  <" &60E4e *Z"!I% &78"N|
< &

(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{v vXs$egv``6gx6y qveX$y {y xXvXs`| eqk  `vXs`6gxX{
rYy x{v vXs$egv``6gx6y qveX$y
y xXvXs`e y {l  egvsXe6gxe{
kj" '&&* 07* , 8&0'0!+<* < 8<"4+ ? %'!%   0'&* < 8&60E 0' Z"!I% &
8"2,(*V*  <'0)( 0!
"*N$
< &
'( '&  #- &
<0}( !+ , 07.YR%I0\=
 !+ 1247 0<,B@'< 1'0C'KQ  * 5 0'24ZI0<'0J<'W;7-YM`:+%M(* !%  " 2 & * "!
&007! <* '< ;M4&0" 07!+4" 0'J0.R%I0,'  - %M"U`0.YR-* 05%L' * 8@ 05  2  
2Z* 0'<0{vX|e`$x`y XqYgv6g7( "!%  " 2 '&
* "!E 0J<" *I0J<'5 8&0'0!+<'7 '< J<')( 0 &* @7='
0.YR-*I0W L q c *'8  "2 4+ "
 0, {v|76 6$g'MJ{v|e6gxy qgv6gE( !+ &
"! 1" !\ 0T   0"!+J<"
&0" 0"!!
6M 8&60'0!+<* < 8<')(
0' &* @7=`S"`0.YR-* 05 L'  {F '4  '2 <" *V; &

{vXge6|x6y Xqv6g7* )( !+ & '< 4 Z!I- &
4M  "24 5* 4 *V4 {v|6 `gg7( !- &
"!+1' !
I0'<'0' 0'T *Z"!I% &8&60E' 0 5  2 < El
Fragmento de cdigo 2-5, Almacenar Datos en un Objeto GeometryArray.

qsey '\Xy XvXXt {v|`6gx6y Xqv6  X v{D*6y {|zY|+Q t  I  t  I  t  $-


qsey  '\Xy XvXXt {v|`6gx6y Xqv6 X v{D*6y {|zY| t  I  t  I  t   I%

t
zt
t E` 6|zY|vexB[YvY} `$z{$ t   t  I  t  -
t E` 6|zY`6|vev6[vYWE6 6|zY|  t  I t  I  t  %
t E` 6|zY` vB[Yv) `$z{$  t  I  t  I t  -
t qsey (\Xy XvXXt {v|`6gx6y Xqv6  Xv{D*6y {|zY|  t  I Q t  I  t  $-
qsey (\Xy XvXet {vXg`6gx6y Xqv6 Xv{D*6y {|zY|  t  I t  I  t   I%
 t
qsey (\Xy XvXXt {v| `I  {6gvev6%
 t
 t}qsey ^(\Xy XvXXt YvY| `I e ve%
e t
t}qsey )Xy veet Yvg7e6gx6y Xqv6  { %
zt}qsey )Xy veet Yvg7e6gx6y Xqv6 { %

t qsey )Xy veet Yvg7e6gx6y Xqv6 { %


}
t}qsey )Xy veet Yvg7e6gx6y Xqv6|zXv{D*6y {|zY|  t I  t I  t  I%
t}qsey  )Xy veet Yvg7e6gx6y Xqv6 { %
t}qsey  )Xy veet Yvg7e6gx6y Xqv6 Xv{D*6y {|zY|l Q  t I  t I  t  $-
 t}qsey  )Xy veet Yvg7e6gx6y Xqv6 { %
 t}qsey  )Xy veet Yvg7e6gx6y Xqv6 Xv{D*6y {|zY|  t I Q  t I  t  $-
 t}qsey  )Xy veet Yvg7e6gx6y Xqv6  { %
 t}qsey  )Xy veet Yvg7e6gx6y Xqv6  Xv{D*6y {|zY|l Q  t I Q  t I  t  $-
e t
zt7` 6|zY6~ `g1  
hYv}6 `Iz{k   I
X t}~ 6g1   
[vY)76 6|z|  t  I t  I t  %
r i  1r vv6
t5|`I$y {`rw  z
` t}~ 6g1  Or 6[|vXx

t}qsey  )Xy veet Yvg76 `| ~{6 6{-


&0" 0"!\( 0!"<*#+'&`+0W( "!% , 0T Z!I- &
J<"580.R%I0);7%YM6[:%%M44.'  &0EU*
2 043"(*&* #: 3""240'B*J 9,0WB*J 9%-)"4e# 0!-2 * 0<"e Z!I- &
7=
[ *<0*'( '&  #- &
&** " 3"' "!+ <',6 0T   0"!%U*&0" 0"!/( 0!"<" #+'&6 0<'"X Z! % &

*1! 0\=   <'0 W!%"*<'!- V* "gN|  J0}( 0"gN 10E
0'!+"  
0'8&0E8<" #+!-"
+8&0" 0"!-
8& < 4 Z"!I% &7U 08&0 0!%J 072.!+ "  
 !:( 0 
"
%!%5 0'T *Z"!I% & * "*<'0W"

0"2,.'!+' '<0);+*/=

,F5'w "D5 J8X+IJ*7w*+"+7 7, '84%I'
;'-Y M`-+%M
  " 2+7U " !+ '1"2
I0<"B@'<" 1'0C'KQ 2%!+ &@"20 5!+*#%"!+*&* " 0J07.YR-*I0'
;'-Y M`-+%M( 0"!0.R%I0G7*7>!%&* 8&*!+ <0=`>; V'U 0'J0.R%I0
*'E  "]* <"" 5'5j+7 '8 U*3,"  1"f" *1 "!"  ]* '< "6 &7* "!- 0
1!%9 #: &01*"!% g= [&0
%!+ !- 0,35 0'J0.R%* 0;'-Y M`-+% MU*3 07
j"G,*7*I'U 'E'* *.*&*  <"j'"7U'(
0!
0)('<J*"!
]* <" <'0'8&607240Wa' R%08 "`
&
7 !- 01"!-9 #- &60\=

Fragmento de cdigo 2-6, Objetos GeometryArray referenciados por objetos


Shape3D.

qsey e}hXvY$q`X~YeFg6eeg%

t
zt qsey ewt q`xex`\ey x6$vY Yqv`zgqsey (\ey XvX{$%
t qsey ewt q`xex`\ey x6$vY Yqv`zgqsey )Xy ve{$%
_* W7 17!+ C'K{nn82%!%  &
 !- 01"!%9*#- &0)( !+&* "6&*!+' <'0)( 0!\ &* 
#L' 8
w?' `('(= R%  =

'  'T"5T74+YM6-+M
0240 , ?(  &@,"  &
&* @78 7%!- 0"!QU &* 
W;7-YM`-+%M4' "(*"!+&   
G
". %!% '&`+ W(* "!% '.*&*  29f
-  'U &0"240' **[-+M"=_* W7 1!% C'K{n`CW2%!% 
9"!:. 0`<'.*&* *J<"W;'%Y M6[-+ M=_ W(!- *& ( "6<" % &* @74"
%!%, 
.&  *88&
@"2405 !+ <"!- V <'0!" *  ,<'&  <'5!% <"!- V "!" T Z"!I% &
'=

_* W7 17!+ C'K{n`W2%!% XR-25( 0J<"5 J&* *-!+0'.&* 


8<'WJ7%.M`[:+%Ml
/7 g[-+ MU'' * [-%% MU
F- 7  [-+ MUM  ' [:+% M  f &
83"5*00EJ 2,.' Z
.&  *J<W;7%Y M*-- [-+ M
='F4 4#- 1"!+ U 0';%!+8&60E{RQ
I04298 ,
 V*3" ! <" 52%!% 7 0'2 *240'J
" T Z!I- &
!+ <"!: V* "*<0* (
 0'U
%!+N|*' 'U
0<'0';%!- 9"*1"' 0''=_* &* "!I 5 2 '1'72,-!+ &* %!+0 Z"!I% &
J< #-  <'0W

&** '<"!-  9 "!+0E= .  !$  ,3W 1*0<"5 0'T *Z"! % &8 98&072( ! % <0\l & <' 5gN|  0
( 0"gN 10E 0W!+"  "*0 5!%"*<"!- V 5  <'7( 7 < %U 7
 <&* " 3"' "!"0%!% E=

/ 0!"<" #%&6I07U *,!%  " ,  


 "!- 0!"<, 0;%!: 9"*1' 0';M4&  <!-  9*+!+0'=F 5f' % 2
 &
&* @7'U* (!%"*<"!%20 0'J %!- . I0'83"5('*'<'7 #- "*&* !E4"
240'<'0<
!+7
<"!- V '<'0<5 0'('!- 2  + *0'4!%  " 0=
\ 8&  *-!+0*.*&*  a*"!%'<' 7J*8&07
%!:&` 0"!+;M2ZI0<0'8<W;7-Y M`-+% M=
[. XR%0)( 0'<"240'T "!"J&07
%!:&` 0"!%'U( !%  2Z*+0<0'U(*0<"20'; 0 !7 *-!%98
 5   <'5 0'2Z* 0'<'08<5J'%Y M6[-+ M=
G07
-!-&`+0"!%J<k'.*&  J<5J'%YM6[-+M
G07
-!- M*40".R% 0T  &N 0'8&0*f2!%0<" *Z"!I% &8'( '&* #- & <0'JM4e# 0!-2 *I0,<
 0'T Z!I- &
=
kw5(<74 ]* < !\.* 7 <"!+ 8 j(* !+ <' &*!- . !E 0'J<'  0'J<&
<
Z!I- &
7=_ .* 7 <"!+ 8<'4# 07!-2 * 0
0E 2 2 835 J<'*#- <' 8
'(!+&* *5;'%Y M6[:+ M=
*`y { $gq $y {`rYv6 vXse{IXy {`rYv6 gvs`6$uwqYg
Xy Xv Igq $y {`rv6 vXs6`{IXy {erv`vXse6$ujqXg
$y q` v $gq $y `rYv6 vXs76`{Iy {`rYv6 vXse6IuwqYg
qex $|q Iy {`rYv`vXse y {erYv6 |vsq66$ujq
 "!+ 4 "!"
* 0<" 0'8&60E
%!-&6 0"!%;M2Z* 0'<'0''U(*0<"20T *0 !7 &* " 3" !% <"
 0'T#-!+ 1"27I0'J<&@'< 1'0 CK% U C'KQ 0 CK: U*3"W  7J07.YR-* 0,' **[-+ M,=
k 9"240J< .YR- "*<05&** '<"!-  9 !+0''U
<".20';+"*"!7& ' <" <0<W 05&*!+' "!E 0
Z!I- &
87"* 102%!QN &6@E &
 7U 
I0'KO 
+"!% '&&* 0E '< 7U
01"072%!QN 5*0)( " 7=
k
 0Wa &
"240'U'( 0<"!ON , 05!%*<"!- V* ! * (!+0(' <' "2
 E=

'  'T"5T74+YM*-- [-+%M


*_ 8&* %!+0'.&   8<"W;74%- [-+MJ<
&*!: + 8  "!- 07!-2
 )
0}(!-2  
!+
-   V "!' Z! % &
=`[ 1'* 8&
0#- 1'!+ &* 0E*J102Z%!- &
 6 '  "4 5!%" %   V* "!E 0'
Z!I- &
'U( 0!7 0)( 0'<!QN "!%'  "!&*  8(&* "  V <' (* "!% 52XR%0"!\!+*<" 2 "
I0
< !+ <"!- V '<0\=
;'-Y M F%- [-+ M4* &* 
 . %!% '&`+ <"5 3
<"!- * J% ( 0(!- 2 - *0
( !+ &!+' "!EgN|*' TM8"( !$#- &* 8&0"2,(  =;'-Y M F%% [-+ M4 ( !+&*  
<)' 'F%- [-+ M'U : "* 'F%% [-+ M'U
M8-   D [-+ M=_ )7 1"'!+ CKne}2,*6-!%
4eR%"2,( "!"<"& '<' %(
0M4&@240 5!+
-   V* " 0'T *Z"!I% &'='' *%: `-+% M!+ <"!- V*
 N$ ' 8&07*&6+ < '= : *" F%- 6[-+ M!+*'  ;-!- 97
17 083*,&6025( "!I+"
 <'07U!%*  <0,e Z!I% &
,!+7 <"!- V* <0529!%'&* +2+E=
j-   F '\6[-%% M
!+
-   V " (!- 2"!' Z!I- &
78* 92 * 7=

;
'-YM F%- [-+MJ+ *54&07
%!:&6I0!<" 6%  0 "6<W;7%.M`[:+%M=
&0 6-!:*&6I07!\;'-YM F%- [-+MJ+ "*,"J !%&
"!\( !%9"2*%!+0EU 3"4 "!:!+ *M
&0
+ <'0!<8 Z! % &
( !% &
< 5 9"2* 7U(*"!:2 % 
<'053"W'8
@ 00.YR:*I0W2 "
+ 1"
 !-  92 * = J74%Y M*%: 6-+% MJ+ 2. Z"(!% 
 W(* "!<52Z 0<0J<"
&0 ' + U XvI`u $$y Y|M8ev $Iy v6 vXse{g-U*35!% !+ 2
  5* 7=
G07
-!-&`+0"!%J<k'.*&  J<5J'%YM*%- 6[-%%M
G07
-!- M*40".R% 0T  &N 0'8&0*f2!%0<" *Z"!I% &8'( '&* #- & <0'JM4e# 0!-2 *I0,<
 0'T Z!I- &
=
kjW(<74 ]* < !E. 7 <"!+ 8 j( "!+ <' &*!- . !E 0'J<'  0'J<&
<
Z!I- &
7=_ .* 7 <"!+ 8<'4# 07!-2 * 0
0E 2 2 835 J<'*#- <' 4"
'(!+&* *5;'%Y M6[:+ M= kj
0( 0"!I+ 2,f - (  92 '=_* 2 <'5 0
&0
+ <'0!%J<"8 Z!I% &
( "!% 4 0'<   9"2 *  < !Q!+ *M
%-GII% L*G7 I
E<.
 !\ 1 "6 "6&07 '<07!"<"I0<0 0T Z! % &
 $?G0
I=
Xy Xv $ Iy $ gq $y {er sX6e{ y {erYv6 |vYs66$ujqIXy {`|Iy {v6 gvsYE6e{G 

$y q` v |$y $|q $y {ers76e y YerYv6 gvXsq`6$ujqXIy 6|Iy 7v`vXseg1 I
$y q` ve`q6 $gq $y {er{ sYEX{IXy {erYv6 |vYs66$ujqIXy Y`|$y v6 gvs7X{1 $

*. 
"!$  3  
0 0(*0"!I+ W(!- 2 - *0!+"  " 08&0729J<"&  *-! 05 <'0='
(!+01!% 2 '<07!!%( 0E
 . <"5 * !\240'  &0'(* "!% <
&02,(*0!(
0N 1'07*029
&0"25( eR+0840".R% 0J * * ,=_ &*  J<",*%   < <,j- 7 7 I7&0 ' !  
( 0"gN 10E 0'8&6025( XR%087;-!- 9 1 0
_* &*  j- 7 7 * 
 '3"*%7l

~6uht Xe6t p$zx


t Iy et `vX6uwv$
kj5*
)(* "!+ &
0 "!I% !\( 0"N 10E 0' 0%!- 9"*1"' "!%87J%!- 9 1' 0( !% 5!% <"!: V* !- 0
&08 *  ,[=_ 0'( 0N 1'07 0'('<""8 "!&@E & *0'U' 0)( *0;M('<'74&60E+!
1R%"!+0 ('<T *!vX6ujv| Y
t {vgE`{|`e|E6X{|$=_ 0'(*0"gN 1'0*0 0)(  0'J 
(!+0M*&6+  *( " 0W29'8&"!+&
*0E=
"- "5G*6-- $ 7+
$y q`e qX6$|
[!+ 580.R%I0,F- *"' $7L=
"- "0
Xb$'
rYy xj$$y q`X6e qv6|ve6ujv| {y {|X
\ 5!- % * &60E6 ' "!I+"`0.YR-*I0)J'-Y M "g <
<","J% ( 0)(!- 2 + *0
 ch;J 9*h|
cH J% ( 0}(!- 2 % 0w=
" 4 3 9 Th|
c* 9"*<0 Z'&* &
J<"
< &025(
0'* &* @4<)(
0N 1'07 0=
 "!+9"2%!+0''l

ginfo - el objeto

~{6uBt Y`6t pIzXxt {$y et eve6uwvY$ t vXujv| { g

a triangular.

R-2,( 0<'W*0\l
$y q`e qX6`| hvYW$y qX6e q6$g-
|+t $$y q6X6X qv6gy {ge%^  6y {gG~6{gq6y Y|vGev`6ujvX|
qYv
t {vgFve`uwv$ gy {g
t evgvX6uwv$ $|q |$%^  Xq6vBy q Xq`v6z6

47 "RcGIdM )w"'6-+- 7


 F 7`[:+%M
60".R%I0cG M
,<*(!+0'1!% 2 B0M
0*(("= R-  2%!+ &
@"20W * "!E"80.YR-* 0
: * D ""[-+ M( "!+ W280'<" "!E 1"02*-!QN <'W;M*0'K%M 0\=F`F- 7  F [-+M
&0
% &* %!+0, .* 7 &60''l
<'08& !% 8 ? +"!- 0!% <  &08&* !+&* !+ 7M8<0'8& !% 
 
 "!:*  &
0*0
= kF@" 0 W*'&
  5"J07.R%* 0,F- 7  F 6[:+% M(* !+ W!+(!+ 
+ !\ 0'
&** %!+0, ".  &0''=
_* W7 17!+ C'K{n`W2%!% %!+!%"*<"!- V* &* 078<'"F-   F 6-+% M"=_ )(!- 2!%
'  52*6-!% *!% <""!- V <0}( 0!<*#+&6 0EU &0240)(*0"N 10E
0'!+  
0'. "*&0''= k
"2. !%1'0EU J<7N #: &* X *"!E 0J<* "  'U (*'&   24
+5 5 0& "  V '&  @8<5 0T Z"!I% &
'=
 "!+ 520%!% "!E2XR%0"!\ 0;-!- 9
17 0'U J0%!+ J<'0'T  6 2*6-!% 4"
: * D ""[-+ M4&6078**T *Z"!I% &8&07&6 '<08&607gN|*' '= "!% 5!+*<'!- V* !\ 0,3
 !QN  0'( 0N 1'07 0'!%"  " 0'J&
07gN|*' U'(<"T !\ &* 
,/7 M '76I%-  +
298 '<" +7=
3

F4" 7!+ 172


I0,<',B@'<" 10CK "
2Z 0<0  `v`6ujv| |&*!+' M8<" *" 
: * D 7"[-+M8<'
 <0\=_ N$ ' )n6Kn,& " &* " 0'(+08&

%!+ " ( "!% 5 0
&** %!+0, ".  &0''=*B <" , . " &0% *Dn8 Z"!I% &
U*3
&  & ' 47 N|* JCoK
C7=_* N|*' 8'oKQC,&
0 %!:
M4"60".R%I0,F- *" F 6-+% M;  &N 0EUM ,N|* ,*W
<'07 <5 8&600!+<'7* < '8& " &* < (!%Z ' 2
   gN|  WnK:C"E 
" 2 &
7* 460".R% 0\=
Fragmento de Cdigo 2-7, el metodo yoyoGeometry() crea un objeto
TriangleFanArray

tXIy rYqgvGvXujv|   eFvX6ujvX| g


t
zt $y q`X6 ev 6q6 $gq q

ty *
ty `gYgq6  :II v %
t *6y {|zY~X6gxe1  
[vY*y {gzk gq6 

ty 6| y Xe{1 
%Dv XIv XIv Dv
I `q  t I
 t
I `q}  t
 t
 tDy 6
e t}xe6ee vq

t5I `qes`
zt
t `Yve$vG~v6{$gq6{6y {/g``g6e`|$y q` vwq6j|Iy 
P
t}~`6gxX1   :II v + 
[vY*y {gz|  t   t  I/%
t}~`6gxX1  :II v + 
[vY*y {gz|  t   t  I  t  %
t}~`6gxX1  :II v + 
[vY*y {gz|  t   t  I  t  %
 Rz :II v + 
[vY*y {gz|  t   t  IO Q/-
  t}~`6gxX1
  t
iEYqG t    q|6t II Q f  vv
|
 t5|` gqB  w  #
 t sh $ `qYg*I   q|6t ~{Xgqe$%
e t h $ `qYg*I   q|6t Xy X|qXI%
zt
X t ~{e6gxe1   :II v Y v
 Q%O hXvYD y {|zY$ s` %
t ~{e6gxe1  :II v Y v
R v hXvY*y {gz|s` /-
` t ~{e6gxe1  :II v Y v
 Q%O hXvYD y {|zY$ s` O Qg/%
t ~{e6gxe1  qz :II v Y v
R v hXvY*y {gz|s` O Q%
 t
 t
z  t5qBhXvY5$y q6Y v `q $|q gq E
z t)$y q`X6 ev 6q6 $gq t F ?? E
z t |$y X76e{-
zezt
z t5q
t {vgEX6gxy qve  Y~e`|xX{-
zt
z tgvX$XI |q
z t  
v6YxG ujv|Xex  `vX6ujv| y ~{ qX{A (" 
`M 0K%M 0I0  247
 5. 7*&605J
@ 0W('
I0< !Q!+ *3"7=_* ) 1"'!% CK{n6526-!%
80.YR-*+0 2  "!QU240'<" #: &
<'0)(* "!% , &* ' !7&60 0!+J74& '< 4 Z! % &
7='
2Z*I0<'0
 eve6ujv$ g240<" #- &
<0EU 35 *&  
M*&0" 0!%8460.R%I0,F-   D "[-+ M'U 

2%!+ ,"" 7!+ 172
I0<,B@< 10CKQ =_ gN| ' ;C"K:C'7U KQMT,(*'&* #- &
 "
 0'T   0"!+J<&0" 0!\( "!% &
<" 4 *Z"!I% &E=

7?'  249( 0' .   <' <'( !+ ,(*'&* #- & "!E  (* "!-  &* <W'40".R% 0 ' * "6
%!+ * Z8<   0<5 &
U+ ? %'!+ 'UM('! 07( < '<J<52 *%!-  J<","40".R%I0  * |=
Fragmento de Cdigo 2-8, Mtodo yoyoGeometry() Modificado para aadir colores

tXIy rYqgvGvXujv|   eFvX6ujvX| g


t
zt $y q`X6 ev 6q6 $gq q

ty *
ty `gYgq6  :II v %
t *6y {|zY~X6gxe1  
[vY*y {gzk gq6 
t E` 6|zY6~ `g1  
hYv}6 `Iz{k  gY|q6  
E` 6|zY|vexB[YvY} `$z{$ t   t  I  t  -
 t
E` 6|zY v )[Yv}6 `Iz{$  t  t I  t  g%
 t
 
%D v XI v XI v D v
  tDy 6| y Xe{1
e t5I `q  t I
t5I `q}  t
ztDy 6
t}xe6ee vq

t5I `qes`
t
t `Yve$vG~v6{$gq6{6y {/g``g6e`|$y q` vq6j|Iy 
P
  :II v + 
[vY*y {gz|  t   t  I/%
  t}~`6gxX1
 :II v + 
[vY*y {gz|  t   t  I  t  %
  t}~`6gxX1
 t}~`6gxX1  :II v + 
[vY*y {gz|  t   t  I  t  %

 t}~`6gxX1  Rz :II v + 
[vY*y {gz|  t   t  IO Q/-
e t
zt}~ 6g1   QI v + h|vex

X t}~ 6g1  QI v +  v6 w


t}~ 6g1  QI v +  v6 w
` t}~ 6g1  Rz QI v + h|vex

t
i\{qB t    qX|6t $  Q f vv$
 t5|`IgqB  w  #

 t sh $ `qYg*I   q|6t ~{Xgqe$%

z  t h $ `qYg*I   q|6t Xy X|qXI%
z t ~{e6gxe1   :II v Y v
R v hXvY*y {gz|s` /-
z t ~{e6gxe1  :II v Y v
 Q%O hXvYD y {|zY$ s` %

zezt ~{e6gxe1 :IIv Yv


Rv hXvY*y {gz|s` OQ%
z t ~{e6gxe1 zq:IIv Yv
Q%OhXvYD y {|zY$ s` OQg/%
zt
z t ~{6 61  :IIv Yv Q O
hgvex

z t ~{6 61 :IIv Yv


Rv 
v6 Yw
z  t ~{6 61 :IIv Yv Q O
v6 {
z  t ~{6 61 zR:IIv Yv
Rv 
hgvex
 t
 t5qBhXvY5$y q6Y v`q $|q gq E
$y q6Y v 6q6 $|q t D?? E [ *Iy q6 ve`q6 Igq t D?wG? BXz

` t
$$y X76e{{%
zt
e t
t5q
t {vgEX6gxy qve  Y~e`|xX{-
6 t5q
t {vgE` 6  ~ 6g{%
t
 tgvX$XI |q
 t  
v6Xx
uwvYIYex  6ve`uwvY$ y w~Y qX{A ( 
iw ".'!+980".* "!$  <'0W J< #%!+7 &* 8
%!+5 N|*' 8' ,'7='6&@'<" 1'0 ,a  &*!: I0
(* "!+ Wa & !\ & "!% 4#-!+07
+ 6<'&
< %!- 97
17 0, 102%!QN 5 5( ! +, ?  "!- 0!<'"`M
0'K
M 0E=

'  'T""*%L ';'-YM6[-+%M


_* J.&  *;<"W;7%YM6[:%%M8<' & !-  8 
 !- 0"!:27+<&* !+ 7 0T Z! % &
J<"
# 0!-2 5.*0!-!+0* E=
kF0 0W J*'.&   J<"WT'%Y M*%-6[:+% MJ+ "* &* *0W  2  <' 5
!+
-   V '&* @44 Z!I- &
=& a0J07.YR-* 081''02Z%!- &60'    "4 5 5!+
-   V '&* @7J<"
Z!I- &
=0"!7XR%"25( 07U'( !+ <'*#-  !\'4&.07U*&
< 5" 0< J0&a*0 Z!I% &J ,**

( 0!"%!+J< #%!%7 8&* '<"!% <'0''='F4*(*0!<, 08&


 0'U'4&.0W!%3 !+
(&* #: &
!C* Z"!I% &
'U "*3"@ 00&*a*0 07!% " 2
 )*'&
* !- 0 n<5 0'JC*

0!%'<""
<" 
 =
_ 080.YR-* 0'H
 "g*% L*'T'%Y M6[-+ M(! 07(
07!+&  0 "" "`< ? %!% <'5
< !%'&&* @7'U
( 0!7 0 W(<" ' + "!E 0T Z"!I% &
!%< < 7
 =6b\0'< * "N  <".(!+0(*0"!+&* 0E "!
 0'8 !:!+ *M 8<5 # 0!-2 &* @7.*  '<' ,T Z"!I% &
U'( "!+0W 0' Z"!I% &
J
)('<'7
" 2 &
7* "!4&* " 3" "!0"!+<UM4&** " 3 ! *Z! % & W(<",!- %   V* !<"'!% 
 
!+7
<"!- V '<'0E=`S6I0'4 "!:!+ *M 43&60E- ""6#+0!-2 &* @78
0.'!%, 8&0'0!+<'7* <" 'U "
&0" 0"!QU**+&=

5   2 %[!-!+ M J<'<'  0'
=
k8"2.* ! 1'0EU 0J0.YR-*+0H
 "g*% L*'"T'%Y M6h:+ MJ 2.' Z'&
*  4 "!-!% M

<" &  0   O "!-!% *M J<")N$
< &
 Q\3"&
0
% ,N| <" &4 , 08O "!-!+ M
8<<  0 =
iw Ma 6+ & *%!+0,O "!:!+ M
J<WN$ < &
l'N| <" &J<'&
007! <* '<' 'U'N|*<" &J<&0" 0"!%'U
N| <" &J<(!I#- &* 
07!-2  'U*)N| <" &8<',&00!+< <" J<"4+ ? -'!% U*3
&007!+'( 07*<'78&0E 08O "!-!+ M
8<<  0 =' f2"! 0,<', !Q!+ *M 8<')N|*<" &8
 "2(!%5 1 "6 "*f'2"!+0< "!:!+ *M 8<< *+0=F f2"!+0<" 2
I0'84&
<
"!-!% *M8<")N| < &
8"
2, 240M
0!:2  247+,2 M
07!3*," f2"!+0<", 2
I0'4"
&
<"  "!-!+ M4<<" *I0'=
6O "!-!+ *M8<")N| < &
 j(*0<7!QN  7 !E2f' %( !+#+!%*&  8 "
2 240 *Z"! % &8"
O "!-!+ *M4<<'  0 =_
0'T  " 0!+4I0'JL !:!+ M
8<)N| < &

<'+!-2* 78"60"!+<47
3"  '&
&'< 5 0'J< I0J<"e Z!I- &
<7'!% "
+ !+ <"!- V '<0\=_ ) 1'!% C'Kn
2%!+ &020eR%"25( 0W 5!+ &* @787
%!+5 0'8 "!:!+ M
J<")N| < &
M8<'&
0'0!+<'7 '< 
(* "!+ W8&'.*0\=
4!-&
, )( 7 52*&  0 !E35a M43"W( 1" !\('!+&* 0}( 0"!\ 5!% -   V* &* @8<'5 0
Z!I- &
(!+07( 0"!+&* 07 <" W( 0"!\ 1'02%!QN 5
<" ? <" K 0)( 1" 20'8!%"*<" 2 I0\=F
  < ? <0<1'0"2%!QN '8"4"
2407247 0<5 W!+ <"!- V '&  @ ]* '<'529;%!% ". XR+05 "
(!+0'&
 0<5!% <"!- V* <0E= k6" !+" <" 2 "
I0,,(!+0. 2 7U
<".20'* !\ 92* 
 "2(!%3" ' )(
0'* .' 4M4* '  "!E 1072*%!ON W 
<*?* '< E=_ 10"2*-!QN 5  <'*? '<' ,
f % &** 
<05 4 *" 0&  <' '<) 0,8&*!QN - &
M;+"20'J " 1 52"240!- 3"1" " !
*
97
<0" U 0,&*  <'0W 5
< ? &* @7,(! 0E( 0!+&* 07* W(!+0'1!+ "2 '&  @78<&07
" 7 &* E=

*_ J.&  *;<""g*&L*'";'%YM6[-+M8
0( !-  " 8 5 ;'.*&* 
8<'
;'-Y M`-+%M"='F W 1'!+ C'K{n6W( 0'<"20'T *"!"69"!:.*0"6<5a!% &* <"
"g*%
LT74%Y M6[-+ M"=

_ 08&
0 6-!:*&6I07!+(* "!+ K"| "&L*;7%YM6[-%%M"U "g*'%LT74%YM*+: 6-+%MU
M8**
.&  *J0EJ 2  "!+8 5 0'8&0 6-!:*&6I0!%8<"5;'%YM6[-+M8M
;'-Y M F%- [-+ M"=_* 8&* 
J<<" *I0' *<*?* '<0';% *( !%92*%!+0, '<" &  0* 
(* "!+ < #- !&*f* 7 0N$*<" &J
5* 7(* "!+ <''
&*!- .' !\ 1'02%!QN " f24"!+0<
" "247 0, !:!% *M8<"WN$
< &
 =
G07
-!-&`+0"!%J<k'. &  8<"$ "&L;%YM6[:%%M
G07
-!- M*'40.YR% 0  &N 0,&074*'f2!+0<"4 *Z"!I% &8'(*'&* #- & <0\U "X#+0"!-2 I0,<'
 0'T Z!I- &
'UM4" f2!+0<)N| <" &4"6 , "!:!+ *M"=

xevXsYvex`veujv| $gq $y {erYv6 gvs7X{IXy erv6 gvs `6IujqIXy { y XxevXseg


xevXsYvex`y Y $gq $y `rv6 vXse{IXy {`rv6 vs6`IujqY+y {
y xevs7X{
xevXsYvexXy v $gq Iy {`rYv6 vXsX6e{ y {`rYv`vXse6$uqY y { y x`vYsX7``{
xevXsYvexXIy q`X6 v $gq $y {erv6 vsE``{Iy {`rYv6 vXs `` uwqY y { y x`vYsE6XY
xevXsYvex qex Igq Iy {`rv`vs76e+y {`r{v6 gvXs e6$uwqIXy {
y xevsX6`{
G07
-!-&`+0"!%J<k'.*&  J<"$ "&L";%YM*-- [-+M
G07
-!- M*5"80.R%* 0  '&N 0&0E8"*f'2"!+0<4 !I- &
8(*&* #: &
<'07Ue# 0!-2 <'0<"
 0'T Z!I- &
'U " f'2"! 0,<')N|*<" &J<6% "!:!% M'U
M' !:!% *M4&07
 '<'0!<8 Z"! % &

( 0!7& '<' 5 9"2  7=
xevXsYvex`veujv| |Iy Igq $y {`r~Xy {er Xy Y
y ~XXy {6|$y {"v6 vXs76e{1 g$
xevXsYvexXy v |$y $gq $y {er~Xy {`rIXy y ~y {`$$y 7v`vXseg1 I
xevXsYvexXIy q`X6 v |Iy $|q Iy {erY~XXy `rIXy {
y ~Xy {`$Iy 7v6 vs76`{ 1 g$
xevXsYvexXIy q`X6 ev `q6 $gq Iy {Xr~XXy {`rIXy Y
y ~XXy 6| y 7v`vs76`1 I
"g*%
LT74%Y M6[-+ MIU "g*'% L*''%Y M*+-6-+% MUM8*J*'.*&*  a"!%< 
2Z* 0'<0J<"
<W;'-Y M`-+% M8M;'-Y M %- [-+ M( "!+ & !+1 "!\ 08O "!-!+ M
8<
< * 0' =_* 8&* 
8<'< * 0'  <*?* '<'0a* 74 ]* < <'0W2ZI0<'0'(* "!% &
"!+1' "!/N$ < &

<
%!+0<5 08O "!-!+ *M 8<)N| <" &
 =
_  W !%&  6<'W4Z*+0<0J<""| "&LT7%YM`[Q+%M
rYy x{vgEe`|x6y qgv XxXvXsX$y Y
y xevs6y {~e`|x6y XqYgv xXvXsY
kj" '&&* 07* "*N$
< &
<&0'0!+<'7 '<  
0&  <0,&60E4e *Z"!I% &74N|
< &

(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{vgEe`|x6y qgv Xx6y ~ve$y {
y xevXs`y {l  6~{e6gxy qXv Xx6y ~ve{
kj" '&&* 07* , 0N|*<" &
J<&
007! <"" < 4 0&* <08&0E 0T Z!I- &
83*,"2,( V 7
4"N|
< &
'( '&* #- & <0}(* "!+ ,6+07.YR-* 0E=
rYy x{vgE6 6 Yx`vsXIy { y Yx`vXs`Yy {6~ ` XxevsY
kj" '&&* 07* "*N$
< &
<&0" 0"!7 
0'&* '<0,&
0"X Z!I- &
"N| <" &(*&* #: &
<'0}( !+
6+07.YR-* 0E=
rYy x{vgE6 6 Yxy ~vXIy {
y Xxevs`Xy {k  6~{` 6 xy ~{ve{
kj" '&&* 07* , 0N|*<" &
J<&
0" 0"!%4 
0&  <08&0 0T Z"!I- &
83""25( V 744
N| <" &(&* #- &
<'0)(* "!%  0".R% 0\=

rYy x{v$6$ujq xevXsw$y Y


y XxevYs6y {
X6$ujq Yx`vsY
kj" '&&* 07* "*N$
< &
<(*"!$#: &* W
0!-2  
0&  <0&0E8"e *Z"!I% &78"*N$
< &

(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{v$6$ujq x6y ~vXw$y {
y xevXs`y {l   6$uwq6 x6y ~{v{
kj" '&&* 07* , 0N|*<" &
J<'("!$#- &* 
0!:2  8 0&  <08&
07 0T Z"!I- &
83"
"2,( V* 44"*N$
< &
(*'&  #- &
<0)(* "!% +0".R%I0\=
rYy x{v vXs$egv``6gx6y qv xevXsw$y Yy xXvXs`Xy {`vXs`6gx x`vYsY
kj" '&&* 07* "*N$
< &
<&0'0!+<'7 '< <"4+ ? %!+   0'&* <'0,&074"X Z! - &
"4N| <" &
(&* #: &
<'0)(* "!% +0".R%I0E=
rYy x{v vXs$egv``6gx6y qv x6y ~vejIy { y x`vseXy {k  egvs7e6gx Xx6y ~ve{
kj" '&&* 07* , 0N|*<" &
J<&
007! <"" < ; *? -!% 8  0&  <08&07 0'T Z!I- &
83*
"2,( V* 44"*N$
< &
(*'&  #- &
<0)(* "!% +0".R%I0\=
zL ' % ,''X-", "*%L*T%YM6[:+M
X#- & a! 0 w?' '= R-  <'*#: 60.YR%I0 '  "X#L 2 Mf
- *( "!+ <" .R% "!\ 0'8XR-;M4"
0!- 18<5" !  0  !I% |=6b/ "2. Z"8 !$ ,&6020eR%"25( 0<"102*-!QN 5 *<'*? '< 7=
60".R%I0z
L' J< #:  Dn4 *Z"!I% &;M4'o)N|*<" &( !+ ,(*'&  #- &
"!Fn6,gN|* '='i *M4&* *&0
N$ ' (*0"!EXR-5(* "!% &*!% !E"*  *&*   4#- '& a 7[=
    "     -  $         

_ 080.YR-* 0'E>(
0<"!ON "!%*#+!+*&  !"  I0, 0.R%I0;'%YMJMJ*'"+7 E=
G0240 , ?(  &@, "
+!: 0!-2%U*60".R% 0);7%.M4( '&  #- &
5 , # 0!-2 &* @E(* "!%
&
<" 4 *Z!I% &<540".R%I0  * |=_* 5 # 0!-2 '&  @,( 0!' Z"!I% &
J<5807.YR-*I0
;'-Y M(<,(*&  #% &
"!"6&0" 0"!<'5 0'J0.R%I0'T  *  =_*0J<"  0J<5
0.YR-*I0)J'-Y M
0!-2  24%
0E
#: &*  (* "!% < & !- . !I0 " 2
 &@2405
80.YR-*+0E='F2&a 0'4& 0''U 2. Z8 5& *  5'40".R% 0*" 7 \=
cB80.R%I0*"+7 W
0,&07
% ",6#+0"!:2 &* @8
0.!+&
@240<". 7(* "!+'&
"!E"
0.YR-*I0WGEhU(*"! 06
".*<07 <7 &07
%!% "!
0'J< I0''='ch80.R% 0''+"
M* 3" *.*&*  <"j'"G7, E*+( 0<!QN W!+ #-!% &* "!'  "!: 0J0.YR-* 08<
0%!+ ;'.*&*  J<5 &*   ". -!+ '&6+ j'"G7, E*7
Q=/0!E 0 
I0W 5 # 0"!:2 '&* @

3"< & !- .5  (* "!- 7 &* <W(!- 2 % 0102Z%!- &60 <" &,3" 9
" 2 &
7* < <7-! 0,<'W'4( 3 < 7(* "!- 7 &* 'U &0280 4  W7 1!% CKn6E=

cB80.R%I0*"+7 W(<"5!% #%!%7 &* "! 4  !- J'.&*  8<" #%!+7


+J<
j"G,*7*   "24 <'0'J0.R%I0'J<, *-!- .'
 0'J< 7( !-  &* 7U &*  M  <'0\l

PointAttributes
LineAttributes
PolygonAttributes
ColoringAttributes
TransparencyAttributes
RenderingAttributes
Material
TextureAttributes
Texture
TexCoordGeneration

'80.R%I0*"+7 ,&60780.R%I08 %!- .' I08 5 5  2 5( 3 <
(* "!- 7 &* E= !+ 5!%*#+"!+7*&  !&*  3' "!% <" 0' 0'<'0'8&6072,( 07*7 ''UJ07.YR-* 0
*'"+7 % "*,"2Z*I0<'0,&07"*0"2,.'!%@.
 0E=/0!XR-25( 0EU( !% 3"W'
0.YR-*I0*"+  !% #- !+ , 5807.YR-*I0)B7 7- * I%- * 'U

5  , 2Z* 0<0
XXveq6gq6~v t {v| 6$y  I$y e{veg:='cB8
7 &*   0,eR%"2( 0<"&@<" 1'0,<')(* "!%'&!QN 6+97
!% 12+0<"&6@<" 10,C'KQ7=
Fragmento de Cdigo 2-9, Usando objetos Appearance y ColoringAttributes de
NodeComponent .

tY 6$y  $$y e{veF~qB[XvY) 6$y  $$y X{veg-


t{~{qt {vY|76 6 t  t   t  -
zt eveq6gq6X~vGq6e[v{ XXveq6gq6~v6g-
t{q``6t {vgE6 6Iy Y | y e{gveg~qe%
t q6v`z64YzXxhhYv qv`z`7g%
tzx
t {v `vXq6gq~{vBgq6`-
tzx
t {vgFve`uwv$ g{ujv6ve6z
u ?FLpgv`~-

F )7 1!+ C'K:C'o)(


0<"240T "!7
&
 !: 01!+9*#- &0W!+'  %<"&@< 10
+"!- 0!O=

j'"G7, 7*7
'*'+
_ 08<'0J 17 "
 .' 0"3J<",!- #+"!%*&* 5  ` " 0'8&60E
%!:&6I0"!-;M40-! 02ZI0'<0
<, &   '"+7 E=
G07
-!-&`+0"!<*" 7
&0 6-!-*&6I0!/( 0!"<"*#+'&6I0<4T''+" ,&*!+ 5"J07.R%* 0&0E; 0'<  !+*#%!-"*&  
0.R%I0'  &*   V* < 8 W' g=_
0'  " 0!+(*0"!7<'*#%&6I0EU( !% &02,(*0
 8&60E
!+*#+!+*&  ' 'U 0!:2 " 2
  0,(!%<"&* .' 'l(" 0;MN$  'U
 <" .R% 74&60E
;+ "2 ]*0M4 "*&*a!- <"DnJ( ?"eM8 4 "
%    
1EU "6&0" 0"!\ 
%!QN|  '&
0. "*&
07U
%!+  ( !+7 &* <"* &6% * < 7UM4" .
#$#+!"<"5(!+0*#Q'*<" <' '<+9 &6% * <'0M48 '&
&* . 
  0)(* "!% , &6%!+ &020 & !- %'!% 7=
X Xveq6gq6~v6g
cB4&02,( 07*7
 ''"+E W 0"!:2 " 2+5!%*#+"!%"*&  5*00W298&072(*0"
+
%!- .'
+07U  "2 " <'0, 5 0J* 1"' +2Z* 0'<'0l
4Z* 0'<0J<"4''+ E?*&   M*" <'0W  2 * &* @JMJ *?
%!+ 

B < 52Z* 0'<'0*" &


&* 0E 807.YR-* 0'"G7*7" &60!-!+(*07 <" 
+W(* "!% 3"*'
(* "!I+<"*(* '3" < (* "!: "*&*  &6- |=
rYy x{vI*y { $$y e{gvX *6y { $Iy eYvejy { $Iy e{gvX{
rYy x{vIXy v $$y `{veIXy v |$y e{vew y v $$y e{ve{
rYy x{vI* e6 $Iy e{gvX *6 `6 $$y e{gvXw e6 $$y X{ve{
rYy x{vgE6 6$y  | y eYve|6 6Iy  |Iy e|vXF~{` 6Iy  |Iy e{ve{
rYy x{vgqYXq`|v`X~ |$y `gve*|q6YXq6gv6~ |Iy `{ve

$ gq6{Xq6gv6X~ $$y `{ve{


rYy x{v v6Yx`v6$y  |Iy `{ve v6Xxev6$y  |$y `gvejgvxev6$y  $$y e{gvX{
G,*I% 4e%* 'j'"G,*7*
\ 1 5 *&   
0<'  .' 34  !- 080.YR% 0!+ #%!%7 &* 'U
M( 0!E 0+ "
 0
&0"25(* !I+ U 0'2 240'J0".R%I0'5w'"G7, 7*7
Q=/0!eR%"2( 0EU 7 ) 1'!% CK-Cn*=
<'080.YR-* 0'E>!+*#+!%7 &* 4  2 240&
02,( 07*
 *"+ \=6b/ "2. Z"U
<'080.YR-* 0';*"+ <" #+!+%8&0"25( !I+ 2 240&02(*0
 
' * $-% 
+=

02,(* !I% !7 2 280Dj"G,*7* E(*<52XR%0"!- !" !+*<" 2 "
I0\=/0!eR%"2,( 0EU
G
X  "!- 0'8&602,( 07*7 J*'"+7 ,&602,( "!I+78" 2 *240,&0"25(
0E*
+
' * $-% 
+'U* 03"W(*"!-2   "
%   'U*
240I07!E!+7 <"!: V* <0"!<
*  7S(*0'<!QN
<&* < !7 1!:'( !7 2 "!+&
0<%!+ .* eR+05 %   '=\I0)(
0<"!QN 52 2 V "!E  '&6%  &* @7JM
<* &6% * '&* @8<" "
% "  'U 0,3 "!QN 529!%9( <'0\=
.*
"!$  3  1' "3,",w0<0  1 529J<2,"( <7!+E=
k4"2. "! 107U*&607240
 0'5j"G, 7*7
I;07!% #%"!+7 &* <'0''U*0
0780.YR-*+05jEU( 0"!E 0,3
!+  24%W 0% *(* '<"!%=/0!E 0+ "
 0EU 0'J0".R%I0'5w'"G7, E 7
\(<"8 !
&0"25(* !I% <'0' !%*#+!%7*&  <0
F( 0"!7&*  3' "!/f'2!+0<"0%!+0'J0.R%I0''=
[ '
'$%- '*
F46+ *'&&* @78
< & !- .* J
" (!- 2!% J'.&   8<w'"'G7, E*73
(<7J "!\!+*#%!%*&  < ( 0!"''+" *?&  
M*"*<0W J<",  '2  '&* @E;M
 *? %!% 
=
/7 g$-% 
+

_ 080.YR-* 0',/7 |$%: * '24  eR% 74 240'<'0,3


5!%'<" .R%  0(
I0
(!- 2 - *0=0"!"<*#+&6I0EU  '; Z!I% & 5!+*<'!: V* &60240)',(" 07U!%  * 5f" &60
( ?|=/0'<'"20* "!"{vX$*y { y {v6gE(* "!% 5a '&!E"(''
 0W2981!% "*<E=
kG 42. !+1'07U
( 0!<*#+&6I0EU,("I0)2 *M*0!" W(* "!%&  5&  <!% <0EU 52 043"5 *"240'
{vI*6y { Iy q y qeXy  E Xq6` v6|:=_
0'(+0
% "    1,&
"2,. " 0'8&60 0!%8<5 0'( ?" 
(* "!+ Wa & !E3"*(" 0)( !%V*& !+'<'07 <" '<'0 0, "
2 0'U''4&* '<"!% <'0W2*0
' * .' =
G07
-!-&`+0"!%J<}/7 $-- ' +
* `y { |Iy `{veg
[!+ 580.R%I0,&02,( 0E 7+3"<" &*!- .5('
I0'J<5( ?6 4 "
-     1\=
*`y { |Iy `{ve | eqY y { y {v
XYe veq6jq|vX
[!+ 580.R%I0,&02,( 0E 7+3"<" &*!- ."` 2 ] 0<"5( ?*(* "!+ 5 0(" 0;M8
(*"!-2 +0)*0, 
% "  *  1E=
4Z* 0'<0J<")
G$%- * 
rYy x{vI*y { y {v6 I eqX
Yy { y {vX
w
&*!- .` "2 ]*0<")( ?*" (* !+ 5 0'(" 0=
rYy x{vI*y { {$y q6 y qXXy  E q6e v6$e v`q6jqgve
B&6% * 0<' &6%   7%   *  1<5 0'( 0'"=VB *  2
 5 
 !- 
 @ 06"
(
I052 *M*0!<5,( ?"g=
' * $-% 
+
_ 080.YR-* 0',* $%: ' '8& "2. " 240<0,43" 5!+7 <"!- V* " 'N|* 
(!- 2 -  J<4-!+T# 0!:2 =/0"!<*#+'&` 0EU* 5gN|  
< .'YR- 
@  < 5!%   7U
<","
( ?6<' 7 &*a*0EUM8 4 7%   *
1\=0<208& "2.' "!6+08 %!- .'
+0  2 7
<0 5 0
2Z* 0'<0;{vX$Xy v
*qY gv6$eg-U
{v$ey Rv @y x|eg:UMJ{vIXy v {$y q6 y qey  E Xq`e v6g:=
G07
-!-&`+0"!%J<}' * $-- ' +
X y Xv |Iy e{gveg
[!+ 580.R%I0,&02,( 0E 7+3"<" &*!- .,gN|* !%   8<'W',( ?6<' 7 &a 0EU

@"  < !+"  * 'U
 4 7
%   *
1\=
Xy Xv |Iy e{gve | eq
X`y { y Yv
y {
y v*q v6$6Xe6 veq6jqgvX

!+ 580.R%I0,&02,( 0E 7+3"<" &*!- ."` 2 ] 0<W( ?*(* "!+ 5N$  'U "*( %!+@7
[
<5*
0)(* "!% < .'YR%0M86
 '&`-  0)*0, 
% "    1E=
4Z* 0'<0J<")' 
G$%- * 
rYy x{vIXy v1@y xYIe | Xq y vR@y x|
w
&*!- .5   &a''!+ <W( ? (* !- ,gN|  '=
rYy x{vIXy vq v6$eIy {
y v
q gv6$
<'07 <) *7/$ :4* <',6 8&07 6% "
+l'7E 3 [J9j "$ ( 0!"<"*#+&6I0U
7GE 3 [J 97FhB[U'EwE 3 [J 9EwTwU
0}7GE 3 hJ 9EBBJ 9EwTw='w &*!- .&@240*
<"."!QN !%   "!E 0( ? ;<5 5N|* E=
rYy x{vIXy v {|y q6 y qey  E qe v6$Xe veqFqve
B&6% * 0<' &6%   7%   *
1\=
/7 M
'E6$%- '* 
/7 M
'E6$%- '* J1'0".' "!Q* "
240'<'0,783**5!+*<'"!- V* 7 0(*0"gN 10E
0'(!: 2 % 0'
<4-!%T# 0!:2 l &6@7240,'!+  "!- V* '<'0EU
6 95!+&0!  <'07U
M8*6  "(  &
5'
<'( *V* "2 "
I0,<W(!+0#- < < <,(*&* "g=/0!"< #%'&` 07U(*0"N 10E
05'6+9,!+"  " 07U
(*"! 0{vI*6 e`  ex`v`|7('*'<'& 2,.' "! 240'<0,"3" < .YR- *(
0N 1'07*0,&6020
2 "!+&0 gN|*' /0
@ 0,&60E 0'("I0'8<'5 0; Z!I- &
= j f' % 24 J<08&* 
U
' * $-% 
+J0}/7
gw$%: ' '; "2.' Z4 #%'&`+ . " &0240 4 ' * "  V "
(!- 2 - *0= kjW(
0'<"!QNg 5* !7 2Z* 0'<'0Yvg\e 6q`~v`|7( !+ W!+'<"&* !" 'f'2"!+0<
( 0"gN 10E 0'83"
07!%*<'!- V* <0= k`v|Ee eq`~{v6g
  &
&* 0  5;B' 9D \wFD0
TBq 97h>
U &0"240W2< 7U*0 5!%7
<"!- V '<  52  <,<'5 0'( 0N 1'07 0=
/0!"<" #%&6I07U 0'T Z"!I% &J ,!+7 <"!- V* 4&0"20)2 !+&
0;M 0( 0"N 1'07 0'!+  
0' 0
 "2(!% ,!%  "!: V* "&0 0'2 280'T  " 0!+J<W(! 0#: < < <EU 03W(*0<7!QN 5a '& !
"66-!+&a "2  0&  <'0, 2 !%&0#-!% I0+ " 2"
+4 '  . 7=*G07;{vX$* e61 ?/ {vX||-U
 0'T   0"!+J<W(!+0*#: < < <<", 0(*0"gN 107 0'!%"  
0'J W('<'7240 !Ea '&  "
( I0<5 2 17'U'( !+ ,3" 24 "!%&0,2 "!%3"60".R% 0W!+   0<", 4# 0"!:2
(! 0E( <" 7={vI*qe~G `qe~v
6$uwq6  y eg"4 :Ng*(* !% W!+7
<"!- V "!\,(
0N 10*0)!+  
0EU
<0*<
"2.*0 <0J<"*(
0N 1'07 0  4  "!"
02.!+' '<0'=

G07
-!-&`+0"!%J<}/7 M
'E6G|%- * 
* ` `` |Iy e{gvXg
[!+ 580.R%I0,&02,( 0E 7+&
07( 0"gN 10*0!%  " 0( 0!"<"*#+&6I0EU
 !+'&0!I '<0M8 
<'( *V* "2 "
I0E=
*` `` |Iy e{gvX$y {
X6 ``  `xev
y {6~e `q`~v
$ `qY 6 `61 ?/ {v
[!+ 580.R%I0,&02,( 0E 7+W(* "!% ,!%7 <"!- V* !(
0N 1'07*08&0240 (''
 0'UN|* J0
( 0"gN 10E 0'!+   0'U*&074 !+'&0!I <& "!% ;M4"`<( *V "2 
I05(*'&* #- & <0'=
*` `` |Iy e{gvX$y {
X6 ``  `xev
y {6~e `q`~v

I eq Y eR ?\ {vY XY`6 veq6Gq`~{G 6qe~{v6"6Iujq6 


y 
[!+ 580.R%I0,&02,( 0E 7+ 2  "! "6&0 %!:*&6I0!7 %!- 0"!QU'(*"!+0 "2.' 6 ' "!I+
&@"20 !%97J<"*+!:2 '<0' 0(*0"gN 1'07 0;%!% *!+0M;#-! 07% |=
4Z* 0'<0J<") M
'7|--  I'
rYy x{vg/e eq`~v6$y {~Y` eq`~{ve
<'07 < '   ,' 0,<'5 0'J* 1"' +lTBq9F EwFUh'97h>U
0
TBq 9Ew 3 = & ' +  0W!% <"!- V*  0'( 0N 1'07 0'J<5 &
!% 4#-! 0E+ 60%!+  "!% U 0) 0
!+'&0!I 5 0'( 0N 10E
0'44 ".*
0" 
 0\=
rYy x{vI* e6  exev6$y {
X6 e  exeve
<'07 <} 7 M 7 J','*0<"I0''l cB;J 9
"$FwU' c[TA 9I "| 3 U 0
 ch;J 9F J"g'"='w" <'!- V*  0(*0"gN 10E
0'J*17f'8 ('
I0'U **N|*' J0
( 0"gN 10E 0'!+   0' ( 0!< #%&6 0'=
rYy x{vI* e61 ?/ Yv|| eq ` ``R ?\ {v
<'07 <} 7 M 7*$ *8"`<( V* "2 
I0<( '&* 0<W( "
+    "]* '<" <'0}( !+
eR:*6 "!7"e * " 0!"<W(!+0*#:'*<" <' '<<5 0'( 0N 1'0*0(!- 2 % *0=
rYy x{vI*q`~YG `qe~{v6$uwq6 
y e$e6 veq6Gqe~G `qe~v"6$uwq6  y 
<'07 <) & " 7j7:"+ " 4<' "!-2* 
 0 Z"!I% &
J<"5 0'(
0N 1'07*0J<"5 8&
"!% 
%!+  "!+ 8<'."!QN 7J !\*1 <08 7 8<'5  2 "!- 0''=*[  <'05 9W. *<'!+ *
  &
&* 0  b!:4M"
!%&
0"!I+<5 W(* "!I+%!+ *!% 6 9<* &6% * <'0EU,(
0N 107 0

!+7
<"!- V &0240e- ' "!% <'0' <'0'J&
07807( 0 &
&
 @*0"!-2 |=

G7 7% **wI%- ' -
G7 7% **wI%- ' +8&0
%! 0 &@"20 &0" 0"!%' &*  3"' "!\('!- 2 % *0E={vY|76 6$|
  &
&* 0 54&0" 0"!\ -!ON| 
'&0EU 3"7  1" '; %* '&* 0*8(*'&N #- &
&0" 0!"<"
(!- 2 - *0E=b/ "2.' ZJ{v qexXv  `xev6 g< !-2 * &60" 0! 
 !O(
0 '<'0,
%!+
(!- 2 - *0  0"!-2 " 2
 W( 0N 10E
0';MN|*' =
G07
-!-&`+0"!%J<WG7 - **$%- ' +
6 6Iy  |Iy e|vXY|
[!+ 580.R%I0,&02,( 0E 7+5* *<0). "*&
0&0240,"6&0" 0"!\ 
%!QN|  &
0M
BT 3 9"Thhd&60"20,"
240'<" 0<
02,.!- '<0}(
07!"<" #%&6 0\=
6 6Iy  |Iy e|vXY$76 6|zY~ 6 y {6qexev  ex`v`
6 6Iy  |Iy e|vXY$ eq
gvex
$ `q6`|vev66$ eq
` Xv
Yy {`Xqexev  exev6
<'07 <,'D J'"4 0<5h 3 9";B[hUB 3 9F 7wU *h 3 FjU 0
" 3 =e[2. 0'8&60E 6-!:*&6I0!%8&*!%' '40".R% 0,&0"25( 07*%,** "*<'0) 0'
=
(* "!+9"2*%!+0'8'(*&* #- & <'0(* "!+ ,&0" 0"!\ -!QN| 
'&0M4"
240<" 0<' 02.'!% '<'0 7
2 *M*0!QN <'5 0'8&
 0H
 B 3 D; "2.' ZB 3 9F 7wUM5=
" 3 ; "2.' Z
BT 3 9"Thh=
4Z* 0'<0J<"5B 7- *G|%- '*I'
rYy x{vgE6 6$|76 6|zY~` 6g
rYy x{vgE6 6$ $ eqX
gvex$ eq66gvev66$ eq X vX
[2.*02Z* 0'<08(*& #- &
"4"6&0" 0"!\ 
%!QN| 
'&
0E=
rYy x{v qexev  ex`v` $y {`XqexXv  ex`v6
<'07 <,'D J'"4 0<6+0l*h 3 9";h[hUB 3 9D E6wU
*h 3 FjU 0=
" 3 =\(*&* #- & "
240'<'" 0,<
0"2,.'!% '<'0)( !% 5!+7 <"!- V "!
(!- 2 - *0=
G0240W 08&0" 0"!%; "2. Z8
W(<8< #:  !\( !% &
< 4 Z"!I% &<","80".R%I0
;'-Y M'U'(
0'<!QN 5a "."!E"8&0E6#-  &6I0,&6074&@" 0"!E-!QN|  '&60,< #- <0}( 0"!
G7 7% **wI%- ' +=jJ"& 0<"<" &*a0&0E6#-  &6I0EU 08&0" 0"!+J<*#-  <'087460".R% 0
;'-Y M80.!%'
&*!- ." "6&0 0"!\ 
%!QN|  &
0<WG -
$-% 
'=kw
 5  '2 '&  @
6+9 '&6%  < U
 2.' Z74
5 17 0!+ ,&0" 0"!\ 
%!QN| 
'&
0<"WB % *$%: '* ''=
%*"+7 M6|%: ' 

%*"+7 M6|%: ' 2 "*XR% 5 4-!+  (* "!%"&  <'&* " 3' "!/(!- 2 % *0E=
{vgqYq6gv6X~ g'< #: *"e * " 0!"<07(* '&* < <}(* "!% *(!- 2 % 0\=6{v gq6q`|v6~  ex`v`|
'&`-  , %!+ " '( !+*&* M8
" '&&* 07 ,"e- ( 0<W!+  "!- V* &* @7 * <'0)(* "!% W(!+0'<&* !E
%!+  ( !+7 &* E=
G07
-!-&`+0"!%J<F% "+7 6M $%- 
'
gq6YXq6gv6X~ $Iy XYveg
[!+ 580.R%I0,&02,( 0E 7+&
074" 280'<'0<"4-!+  (* "!%"*&  <')*BkFbw/kb=
gq6YXq6gv6X~ $Iy XYgvX$y {e  ex`v$ eqe q6
<'07 < 8'",
0,<")w 3 h 3 [U*wT 3|3 J 9\wJhU B 3 jU"=
" 3 FwU
0
w 3 U
MJ|G6( '&  #- & 5 07(* '&  <' '<<"`0.YR-* 0 oE= o< 0  0 "`07(* &  <' <M)n*= o7U
I0 "e-!+ " (* "!%*&  =*[!%' 540".R% 0,&6025(
0E*7 &074"
2Z 0<0,'(*'&* #- & <0)( !%
 5!+ <!- V* &* @78<%!% 7
(* "!% &* M4e   0"!7<07(* &* <" <,<5  ( !- "*&* <"
0.YR-*I0\=
4Z* 0'<0J<"j+**+" 6M I%-  +
rYy x{vgqYXq`|v`X~ $ eqe "q
<'07 <|G( '&* #+&
5* 07(* '&* < <<07.YR-*I0,<'07 < oE= o<'7
0+ I0 "60(* '&  <' '<M
n= oU
I0 `%!%  ( !%7 &* =
rYy x{vgqYXq`|v`X~  exev6Iy {e  ex`vX
<'07 < 8'" ' 0<j 3 h 3 [U*wT 3z3 J 97wJ[U *h 3 FjU>" 3 U0Dw 3
(&* #: &
&@280 W!+'   V 5 %!% " ( !%7*&  7=
w7 ""- w$%: ' '
w7 ""- w$%: ' '8&60-! 0" <0'J07(!% '&  08< #+"!+7 J<5!% <"!- V <'0)( ? K: K
( ?|l
"
.'#I#+!<W(!+0*#-" <" <" <M"e+ ?  0 " ('a {vX$"v`Y|6 gv6 E Xq`e v`|M
{v$v`{$`{ v6 @$y v E q6e vg<* "!:2 * 8` 5  M4&6@240*5 *  .
#$#%"!"<"
(!+0*#: <" <" <)(* "!+ 0& ' + !E"* (*"!I#- &* "   * <" 7={vX eXqX ve 7q` v`|M
{v eqX*vXY 
e~$y 6eg'<"+!-2 7J6
5* M4&@240W 4#- &* @E4  ('a 7=
G07
-!-&`+0"!%J<w7 ""-
$%-  I'

v6x`v6$y X |Iy e{gveY|


[!+ 580.R%I0,&02,( 0E 7+3"<" #:  ,6+ <0J<",!%*<'!- V* <0)( 0! K( ?*"&6074
.'#$#%"!<W(!+0#-" < < <5 '&`% * <'0M 8#:*&  @ " (a <* &6%  <' E=
v6x`v6$y X |Iy e{gveYIYe veqjxev{|6{ |v` E Xq6` v

X vXqjxev{|6{ gv6 @Iy gv E q6e v

| XqX6q eXqX ve 7q6 Xv


y {6q6 Xqe vX. 6`~|y 6
<'07 <,7
-F |%" 3  , '&`%  4M8< '&`% &
, 8&0"25( !% '&  0J<" .'#$#%"!"<"
(!+0*#: <" <" <7U7
%"F | k 7H- 3 *"'  '&6%  MJ<' '&6%  5  &*!- -!+ ,""
.'#I#+!7<'
(!+0*#: <" <" <7U" '/'6gG  5  W( !+ &025(!+0. "!&07
%!% 5* 4#:  <'4   0!%
" (a 
%!+ 7+'UM '*/'6 7 + 74' 0,<'e 7P|
chBU 3 3 hU 3  "U
wT 9 3  U 3 wBU' 3 jF 9J 9 3  "U* 3 G 3 hU 0W 3  3 J 9J 9 3  U
 0,3"*<""*0 ,"e- ( 0<W(!:.  (a  '&6%  7=*[!+ ,"80.R%I0,&6072,( 0E 7 ,3"
< #- 5 04 '<0'8<'5!% <"!- V* <0W( !% &02,( !% '&* 0;<" .'#$#%!7<')(!+0'<7'*<" < '<M
(!:*.* 4 (a 7=
4Z* 0'<0J<"}*- I%- ' +
rYy x{v$v6I`{ gv` E qX v6IX veq6FgqYgve
'&`-  4M8<* '&`%  , 5(!:". <" .'#$#%!7<')(!+0#- < < <\=
rYy x{v$v6I`{ gv`+ @Iy gv E q`` v`Ie6 vXq6jgqgvX
'&`-  4M8<* '&`%  ,  & !- %'!+ 4 .#$#%!"<"
1'!- <" <E=
rYy x{v eqe vX q Xv6 | `qYerq6 ve
(&* #: &
"e * " 0! 5 * "!7 5(!:. &0E%!% 4   0"!%4 (a 
%!% !+''=
rYy x{v eqe vXY 
eX~|y 6eIy eIXX~|y 6Y
<'07 <-" % 7
0<7l 7|
cBhU 3 3 hU 3  U"wT 9 3  U' 3 jhU
3 jF 9J 9 3  ["U 3 G 3 [U 05 3  3 J 9'J 9 3  U
3"*< 0% "e- ( 0<
(!:*.* , " (a  5!%' "  V* "!O=
k 8#:'*&  @; 7P|
cB (
0!"<" #%&6 0U 7 07 & 
(!:*.* , " (a +9*#%&% * "2"
+<
'&6%  <" 7=

-- 
IJ'4*"-  ) 7/w I

&0 6-!-*&6I0!<4T'+ )( 0"!<'*#%&6I0W &    V* ,80.R%I0''+7 &07


I0'<'0' 0'8 *%!: .'
 0'J
" &&* 0* <'04 } |=_* * 1"' 7  . 5   , 0T   0"!+(
07!
< #%'&6I0)(* "!% <" &*a08 %!: .'
 08&07!%*#+"!%*&  } g=
color

white (1, 1, 1)

texture environment mode TEXENV_REPLACE


texture environment color white (1, 1, 1)

depth test enable

true

shade model

SHADE_GOURAUD

polygon mode

POLYGON_FILL

transparency enable

false

transparency mode

FASTEST

cull face

CULL_BACK

point size

1.0

line width

1.0

point antialiasing enable

false

line antialiasing enable

false

% A5w I+"7 +%+'


+

_ 0/0N 107 0'T-  78<08&


"!% = !% 52*&a080".R%I0'T  *  'U @ 0 5&
* 
!+7
<"!- V "!\* <", 8&
"!% = !+ 5!%'<"&  !" (*0<"!7<'& 9 & ' 0) '& * !- 0)(* "!%
!+7
<"!- V "!E J(!I#- &* ( 0N 1'07* " 'U* !+ <"!- V* <'0!/('<'5!%'&0!I !E 8& "!+ 
 '*&  "!: ='6&02( 0!I "2 "
I0,<5!+'&0!I+ <'0 <" #: *,2'<" "
 ,"
/7 M
'E6$%- '* <'"6&602,( 07*
 *"+ \=_* &
"!% 4#-! 07
 "`<"580.R%I0,4
&
!% &*
M*0' Z"!I% &
8+98< #:  <0'4"40!+<'7&607-!% !- 0 5 4 1R% ;<"
!+" 0`RL=
b8  k%!%(`(("= R% *  &*!% ,"80.R%I0  *  "JI0"!Q* <'0'/3"5!+0+  0.'!+4eR%X
 (=
 -!+ 4"e 0"!: <0W!+0+ 7U " 1 ( !  (* "!+&
"4<'* (* !%'&
"!O=_* ( V* 
<* "( !%'&* < J*5*0 ;#+9'&*  2 ,4" 1!% CK-CCE=
w'  2%U*7J 6+%-`8<*#- *<'0'J0.R%*+0; ' * " 'U &0 52 2 102*-!QN K
3"5JI0!Q <0E='cB 0<", 0J0.YR-* 0'T ' * " ; 5!+7 <!- V &
0"20W2 !%&0EUM4"`0%! 0
&0"20W* (*"!$#- &  
@  < E= G0240W 0J<'080.R%I0';%  7 52 24 5 0'&
  V* &* @7JM
0!- + '&* @7'U*60.R%I0  * "
2 "!+&0 @" 0T '  .' &  *<0} 0 4 "60".R%I0
@  <0\=

*_ ,!- *V*@,( 0!E 3<" (* "!%&


 0(*0"N 10E 0'883 ,a ,(*'&* #- & <0,"
240'< 0<5!%'&607!I '<0EU &
08J * " 0!/( 0!"<" #%&6I0}Bq977h>G=_ 0;% !+9" 1' 0'J<5
'(!$#: &* <'* "( !%'&
4&   <0 <'0%!+ *"! 0 & !% %!+ *!% E<" ,a '&* "*( I0<
 2 1'7='\ & "!% '&`+"!QN % & W(*!-2   6* 6+2 <5!+7 <"!- V <'0W 1 0!% "!E 
'(!$#: &* ;%!- 
17 !%83W 0
07&
* !: 'U 
3 !% 0) 0\=
k42.* ! 1'0EU*  17' T '&4 !+'&607!I <5 &
"!% 4-!+ *"!% ('! 0.' "2 U*&0240,7
"67J  -% ['=F
(! 0".' "2 4- *5* 
0 &  @8 "*&*   7l
<' &6%  ! !+'&607!I '<0\=
 "!+ Wa* '&
"!7I07U*& !- 280'4&02,(*07*
 ''+ ,3,!% #%"!%"&*  
&0"25( 07*
 } M
'E6wI%- *+83"*< &6%  , !+'&60!I+ <'0EU &0240 4 4"
#-!+ 17247 0<&@'<" 1'0CKn6oE=
Framento de cdigo 2-10, Desactivar el recortado de la cara trasera para el tornado

* 6 e` | y e{gvXw XXveq6


hv*6 `6 |$y X{gvXg-
t6 XXveq6 t {vg/e `q`~v6I*6 e6 |$y `gveXt /EXB` ?w E %
zt eveq6gq~vw Fy Xv`q6hXvY eXveq`|q6~{v6g%
t y eXveq`+t {vI 6 e |Iy e{gvX$X` eXveq`|%
t `Yvrv6gq6{ y Yvew qv6 Yq v6`|vw Fy |Iy w$y q66 v $Iy Igq Xq

t 
v`v6wxevYIy v`xY~YgveqgvGq q6v`z6`Lp|ve~Xjy |~Ye y w|e$v`x

t 
y |Xv eYv`q6gq6X~vheex v
Yq6YxGqexexw|v q`Xv`z;gj$v{~{v6vG6gq6e

y *t qexex`\ey x6IvY qvez y |$y  Fy eveq6g$%
 t
F )7 1!+ C'K:C'7U <" '&`-  &* @78<"
!+'&0!I+<", 8&
!- ;%!+ *!% !+ " 27 
#- &* 07 7=`[a*0!% 
5!% <"!- V* "JI0<0' 0'(*0"gN 10*0'U*0W 2,(
07!I 5 < !+'&&* @4
3" ,2,%!+7=

*_ & "!% 8#:! 07


 "`<W',( 0N 107 058"  <'0,463"*5 0'T Z!I% &
8 (* !%&
47J07! <""
&0
%!% "!- 0, 5 4 17YR- J< !+ 0eR=\ 9W 0"!:2 " 2"
+!%*#+"!- <" &07280W {7 5
4*w"+ =_* ,!%1 5  '< W(* "!% <"!I !:2  "!E & "!% 4#-!+07+ "`<W'2 !+&
0
102Z%!- &60 8<''<" !QU-!- 9
17 07U*&  <7!+ <'0'/   "!Q & <" " "2
I0<
2 "!+&60\=_*
#- 1"'!+ CK-C}2-!+ ,eR%"2,( 0'J<'"   0<"5 5!+1" <"5 52 *0<"!-&a* )(* "!+
<*+"!-2  !\ J&
"!% T#-!%0
+  =

                   

   %       

c * &* *} """7 4#- &*a*! 08< &7 4  0#- & a! 0J  j\M8&*!+'
B
!+7(!+*
 &* 0E J *  ,<"**8&60E
  <083"W(<J*"! ] < <0
  &6% * "2
  52 <'0 *  7PM4 ! 1'2"
+ <0(*0"!70-! 0&
@'<" 1'0  7[='
(* '3"+~6uht e`t p|zex
t Xqex`v6(!+07( 0!+&* 0 "&607+ <'0)(!- *& (* "*( "!% &0E6 "!I- !E 0
#- & a!+08&*!%' <'0'880%!% J 7(  &
&* 07*878 7(  &
&* 07*J  [='_ 4&   
&
!+1 <'0!%  2,( "27+ ""
 "!$#+ '&}*'< #:  <054"*( 3*+
~6uht Xe6t p$zx
t `qexXv6g6=
G0240Wa *M" 1!% ";  "!- < <<4#+0!-2 *+0J<"4#: &*a*"! 0(* "!+ )( 0"!Q(*@ I0J<
!+7(!+*
 &* @E8<
& " 87 (*0"!EXR-2,( 07U= 0.YRLU= '!-2U**+&= 7M8  2,(!%5a ".!%9529
# 0!-2 * 0J<"8#: &*a*"!+0'U &6@'<" 10W!+ *( !+ &
"!+1" !E";#- &*a!+0)*04#+0"!:2 )( !I < 
70,<'" ( 3*+, eqexev6g`

@" 0
5 &*  M ,"
I"!$#+ '& 5( !% "
2'&
 240<"&
"!+1 E=
G07 <*#-  &* @78<'"
+!$#+ '& U*   !- 0<" * * ,7S('<< "!-!+0  !7&   
&
!+1 <'0!% 8<8#: &*a*! 04&04"
2 *240W 
 "!$#% & 3"5 ;0%!% 8&   4& "!+1' '<07!+ '=
3

% ,"WwJ5',*

k* &*  3"5!%' 247


 5  ,"X#: &*a*"! 07U' 0,( 0'* . &
"!+1 "!"&607%" <0E=*G07
* &* 
} ""J  &*   0E=_  1 "
 5  6+ 5(!%
7 5 ,!-&
*% 5( !% 5* "!E"
&
!+1 <'0!L=
1.
2.
3.
4.
5.
6.
7.

encontrar un cargador (si no hay ninguno disponible, los escribimos)


importar la clase cargador para nuestro formato de fichero
importar otras clases necesarias
declarar una variable Scene (no usar el constructor)
crear un objeto loader
cargar el fichero en un bloque try, asignar el resultado a la variable Scene
insertar el Scene dentro del escenariog grfico

074"6 BAHn*= C <" 6-!: .'


M*5 &   5.  < 78 ,XR%"25( 07U 
 &*7-!% 
G
p|x6 t |xXvujG p|qXrYqezexGl?jOp Yeq`x*=F 7!+ 12
I0,<',B@'< 1'0,Kn (!% 
 W'?
-!+ &6I0,<
&@< 10<+ <"240E=
_* &*  ,X% n " 
< %!- .' M &074*( 3 ~{`uht ``t p$zXx
t eqexev6gB&0"20,XR-25( 0\=
_* 4b .' ,K{n;2%!%  " 1"" 080-! 04eR%"25( 0'J<'&
"! 1" '<07!+8< (
0E . =
[  8X+ "
 '3"*%7l
~6uht Xe6t p$zx
t `qexXv6g
2,( "247% 7l
YeqXx`v6
*_ &*  ,X% n " 5 2( 27 ,"
+!$#+ '&
)'\(* !+ "X#+0"!-2 I0,<'4#- & a"! 0,<
7S**-+ = 0".R%U';# 0!-2 * 0<"8#: &*a*"!+0J<"0.R%I087d6+9*<' "!+<&*!%' <'0}( 0!"
*0,<W
 7S*- 7 I G*7 h  "% 9E=_
0'T#- &*a!+0'4- "6+9".  <087
 *? I00E(
07!I 7I0+ 
I0,1''0"2*-!QN )(
0  10E "6&07280<"8#+0"!:2 5  .!+ &!I  ;M
'(!$#: &* ='& "! 1 <0"!<4#- & a!+0',= 07.YR7<' *  ,0E( 0!I W'8.&0YR:"I0,<
# 0!-2 * 0J<"8#: &*a*"!+0'U("!+08&02,( *+ "2
 #- &  "
 W(* "!+ &
"!+1 "!&
*`I0'<0' 0'
#- & a!+04X% "<" ( 0 .' '=_ 102%!QN <4#+0"!-2 5  .!+W*0, 9
07( 0!I '< E=
Fragmento de Cdigo 3-1, un extracto de jdk1.2/demo/java3d/ObjLoad/ObjLoad.java

ty uG`6~6uht e6t p$zXxt `qexev`g`t 6Op|v`~ $y v


t ?FOp|ve~k
y v

ty uG`6~6uht e6t p$zXxt `qexev`get *q6Xy  E $g6 E sY~{v`{Iy 6


zty uG`6~6uht e6t p$zXxt `qexev`get X~6$gv`~Y `6$uwq E s~v{|y `
ty uG`6~6uht e6t p$zXxt `qexev`get ~vv

ty uG`p$qXrYqt q6e` v t e` vY
ty uG`p$qXrYqs`t ujv`x`y q
t p$zXx t O
ty uG`p$qXrYqs`t rYve~ujq$6t O
 ty uG`p$qXrYqt y 
t L
 t
?FLp YeqexGvsgv6xX e` v6
  tDeee y ~F~Y qX{
e t

t e$y rYqYgv $Iy Yw$y v6q6ujvB[ee


D
zt
tDeee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|
t \gveqgvj$vB|e6e$XvBX|q`X~Yw6gq6`
P
tgq6~YXF|6ew6Op eY hXvY}|q6X~Yjg6eeg-
t
t ?FLp|ve~. y vhv0
?FOp|ve~Y 
y v6g%


 t ~v`Xvww[X`
 t5$
 t FIt eqex6 $y v6qujvX-
e t
zt}~qg~Y 
y vY 66ex E sY~v6{$y 6wve
X t vuBt v`I t eIy {$ X|ve-
t vuBt vsXy | -
` t
t}~qg~I*q6gy  E Ig6 E sY~v6Y|y jvX

 t vuBt v`I t eIy {$ X|ve-


 t vuBt vsXy | %
zt
z t}~qg~ X~`Igve~. e6Iujq E s~v{|y `wve

z t vuBt v`I t eIy {$ X|ve-


zezt vuBt vsXy | %
z t
zt
z t`Lp `It q`xex`E`y x6et `v ~v6Xv`Fg6eeg$%
z t
\ W(! 0'1!% 2 %!+ + 07.'!% 7] '<" !&0"25( 0!I+ 2 +0 "6*#+'&`+0W(*0"!7<'*#%'&`I0EU
0W
 
 "!+ &
&* @E8&0E8" !+ * @78K\&*'.' "!II054" B (N -' 0 EM *&
 B (N %' 05 (* "!%
(!+0(*0"!+&* 0E* !\* 5!% <"!: V* &* @7J 02.'!+ < <" 240<" 0<"`0.YR-*I0\=/0"!*"( 0EU
( 0'<"240a & "!E2,*&a* 'J0-!+ 8&
0 8&074" 280'<" 0,7"(!+01"!- 2 
* * ,7&0240
]* <" !  2 '&  07*'U* ]* < !"0%!+ 810"2Z%!- 'U*&
2.' !E&0" 0"!"<""
240<"" 07U**+&=
w-!+0<5 <" 6-!- .'*&* @E8<"` 'BASn= C *"208eR%2,( 0<") """"
p|x6 t |xXvuje^  p$qrYq`zX1x $ y 6{ qrY1v  \y vYv6 t pgqXrYq*=/6 &
"!+1 '<07!&
!+1" 5  *&
;M4  2 &* 0E 
( &* #: &
< 87;#- &*a"! 0= J<')_ 1"a g; * *\=

B" "+'  7' ' ' 47+


F8  ,d ?'  7T  !- 8&   8&
!%1' '<'0!% "=_* * 1"' 7 + ".' 5  6I 5 0T# 0!-2 * 0
<8#: &*a*! 08& M
0'8&
"!+1 <'0!%8+9"4< (
0E . ('f.'  & "2
 7='F 240"2 0<"

&*!- .' !7I0EU "
27
0'a* M8<" (*07 .' 5' &   & "!+1" <0"!/( 0!& <" 5 0<" 0
# 0!-2 * 0J<"8#: &*a*"!+0El
Formato de Fichero

Descripcin

3DS

3D-Studio

COB

Caligari trueSpace

DEM

Digital Elevation Map

DXF

AutoCAD Drawing Interchange File

IOB

Imagine

LWS

Lightwave Scene Format

NFF

WorldToolKit NFF format

OBJ

Wavefront

PDB

Protein Data Bank

PLAY

PLAY

SLD

Solid Works (prt and asm files)

VRT

Superscape VRT

VTK

Visual Toolkit

WRL

Virtual Reality Modeling Language

b/ ".' ,Kn*U*h "!+1 <0"!%8


*  E< ( 07 . Ff'.  &
27 
F< 0'&
  V* !7 0'4& "! 1 '<'0"!%8<'
<5 W(*91"* W(!- *& (* "`<
*  ,7[l
a $-("l m$m R-  E= *""= &60E`mO(!+0<"&6I`m R% * * 'KO2< m%'< =
"g
+"$+

CM[ ' /'


"  W*'''

\ 1!+ ;  "!- <' '<<"&


"!+1 <'0!+4 ?'  W( !+ Wa* '& !E29J
7 &*   , 
&*!- %!+ <"
&
!+1 <'0!%(* "!+ 5 0'J<" 
]* <'0!%J
*  E[=_ 8&* 
, """
0
 2,( "2
 &* 07*J<"  
 !$#- &
} """E3,. XR- * *"6<'<" #- &*'  <)(* "!%  & !: . !
8& "!+1' '<07!O= G020,eR%2,( 0EU"(!+01"!% "2 3*& !+1 W';#- & a"! 057>!%'  247+
*
W8& "!+1' '<07!M"J07.YR-* 0 &
7 E=&
! 1" <'0!\ 'U* *   V* M4& !+' W
!+7(!+*
 &* @E8
*  E<5 08&0E 7 <0'8<'X#- &*a*"! 0E='60".R%I0, & "  " 2 '&
7

" 6
&
* "!- 0,1!% #- &60,&*!+' <'0)(*0"!7&
!+1 <0"!O='\( 0 .' &
!+1 "!7 &
7 8<' <529
<5;#- &*a"! 0 <" 2 *280# 0!:2 *+0 *  <'0," 2 2400".R% 0,& "!+1' '<'07!M4&*!+' "!
2f % ( J0".R%I0'8 &
7 E=_*0T#: &*a*"!+0J<"<" #+!%%T# 0!-2 * 0('<8&
02.' * ! *
,(!+0'1!+ "2 
*  ,7>*  <0W 8&*  8&
!+1 <'0!% 4 (! 0E( <" "=
6* 1 
 5. 03*<'W!+*#+!+*&  5   , 0' 
 "!$#+ &
<'"*(* '3"*+~{6uBt Xe6t pIzXxt eq`xXv6g6=
cB, """E 2,( 2% "
+!$#% &
) 'M* 5" &*  3*5 2,( 247+ "
 
 "!$#+ '&
, E=
k'2 "!- 0<}|
 !$#- &
8< 7W *"" %'\ ''I

Loader. El interface Loader se usa para especificar la localizacin y los elementos


de un formato de fichero a cargar.
Scene. El interface Scene es un conjunto de mtodos usado para extraer
informacin de escenario grfico Java 3D de una utilidad cargador de ficheros.

G<29J< 0' 
 !I#% &
U**(* '3"*+~6uBt XX6t p$zXx
t eq`xev6g(!%07( 0"!+&* 0E
 2,( "2
 &* 07*.9 &
J<", 0 "!$#+ '&
=
k'2 "!- 0<,[  J< W "" -/ ""+

LoaderBase. Esta clase implementa el interface Loader y aade constructores. Esta


clase es extendida por los autores para especificar clases cargadoras.
SceneBase. Esta clase implementa el interface Scene y aade mtodos usados por
los cargadores. Esta clase tambin es usada por los programas que usan clases
cargadoras.

k'2 "!- 0<)4Z* 0'<'0'J<"| "!$#+ '& )*'


 '3"*%7l
~6uht Xe6t p$zx
t `qexXv6g

 
 "!$#+ '&}*' * W(* "!% (*'&  #- &
!\ 5 0&
  V* &* @7;M 08" "24
 0J<"5
# 0!-2 * 0<"4#- &*a*"!+0, &
! 1 "!O='\6+5 +!$#% & 
W %   V* 5(* !- <" !:  , 04&
!%1' '<07!+8<
 !- 0T#+0"!:2 *+0J<"8#: &*a*"!+0" 
 !$#% & W(f.  &0&02f"= <' " 2
 ,"
 "!$#+ '&

"!+95 2,( "24% <0W( !- <" !:     "!- 05 
 !I#% & &60E
  %5( !-

*?
-!+ '"!E 0'J< I0''=
{~ v`vh eqex6 p$qrYq
t y 
t veqexev6 |vXqexev6g
\ 52Z* 0'<'0& "!+1' ,"w"""M8<'*  *,"`0.YR-* 05 7*,3"*&
0
% 7 5 
& 7 E=
~{v`vh eqex6 p$qrYq
t q6
t $Iy w$y v6"qujve
\ 52Z* 0'<'0& "!+1' ,"X#- & a! 0) 0"2,.'!% <'0M8<* ' *"`07.YR-* 05 7*3"&07
% *5

&
* E=
~{v`vh eqex6 p$qrYq
t vIt w`$
\ 52Z* 0'<'0& "!+1' ,"X#- & a! 0) 0"2,.'!% <'0M8<* ' *"`07.YR-* 05 7*3"&07
% *5

&
* E=
rYy x{vI*qe{v*q$e p|qrYq
t qY t |Iy BXq|`"q6uwve
\ 52Z* 0'<'0*" '&&* 07* "  02.'!%<" (* *-a.  )( !+ 5 0'#: &*a*"!+0J<"< I0'
0&  <'08&
074"X#: &*a*"! 0)(* 
'<'0,74 2Z*I0<'0W Xqex6 |$y XXQ=
rYy x{vI*qe{v67I pgqXrYq
t vIt we$
\ 52Z* 0'<'0*" '&&* 07* "  02.'!%<5 )chh_.* *5( !% 5 0T#- & a!+08<<" * 0
0&  <'08&
074"X#: &*a*"! 0)(* 
'<'0,74 2Z*I0<'0W Xqex6 |$y XXQ=
rYy x{vY 
qXe$y {XI qee{
\ 52Z* 0'<'0*" '&&* 07* 5 .* 7 <"!% J<"&
! 1 W(* "!% e#- & a!+0E=

LOAD_ALL. Esta bandera activa la carga de todos los objetos en la escena.


LOAD_BACKGROUND_NODES. Esta bandera activa la carga de los objetos del
fondo en la escena.
LOAD_BEHAVIOR_NODES. Esta bandera activa la carga de comportamientos
en la escena.
LOAD_FOG_NODES. Esta bandera activa la carga de objetos niebla en la escena.
LOAD_LIGHT_NODES. Esta bandera activa la carga de objetos luces en la
escena.
LOAD_SOUND_NODES. Esta bandera activa la carga de objetos de sonido en la
escena.
LOAD_VIEW_GROUPS. Esta bandera activa la carga de objetos vista (cmara)
en la escena.

*_ &*  )':/' 5(!+0(*0!+&  07* 5 , 2( 2


 '&  @,( !+ &
< 5"
0,<, 0;%!%
2Z* 0'<04 eqex6g<'"
+!I#+ '&
)*'O=' "": + 2.' Z 2( "2
 <'0'
&0 6-!:*&6I07!+= . *!$  3"5 0'T-!+2Z 0<04&
!+1 '<0!%8< *" 780.R%I0
\=

k'2 "!- 0<,B07 %!-*&6 07!+;<"5 ,[  )*':'

 '3"*%7l
~6uht Xe6t p$zx
t `qexXv6g
2,( "247% 7l
YeqXx`v6
\ &* 
5 2,( "247
 ,  
 !I#+ &
} """O='6  I07!"<","4& "!+1 <0"!<4#- &*a"! 0'
<"."!QN *?   <"!76+ &*  7='  * "!- 0<","& "! 1 '<'0"!<"4#- &*a! 0'8<"."!QN 5 * "!
6 02Z* 0'<'0=
Y eqXx`v6I*qX{v6g
G07
-!- M*5"5 """&607 0T  " 0"!-( 0!< #-'&6I0)( !+  0'<  T  "!- ". =
YeqXx`v6I*qX{v6Iy {e$ q`X{
G07
-!- M*5", '&607 .  <"!% 8'( '&* #% &
< '=
_  W "!+&   2Z* 0'<'0*
'<0'( 0!E* "!: 0
\<5 ,[  , 7 *7'
*q`~{6g6eXx XvI*q`~Y`|``x`xevXg
*v6qrey `Y  Xv vqrXy 6I"ex`v|
p|qXr{q
t q6Xt $Iy GevI"vX{~YIy {$y `eg
``
 6ev. e`ex`v|
$ eqXl  6`v$"` y Y6{gq6 ?EY|
Xy 6{l  XvIXy I`xevX|
p|qXr{q
t {$y t "qX{gq6` vBXv$q6uwvXx ?jQp$ve~g
gq6X~{Xjg6ej`v ~vYv`F|6eeg
6ex  ev ex"exevXg
gq6g6$uwF|`eq  6evX \y vYF|`eYg

-  E*

0240 527*&  0*@ "!:!: . 7U &


!% &6+"!QN % &
5249 2,( 0"!I+ 7
 <5 0'8& "!+1 <'0!+4
G
3"W( 0<'"208
&!- . !7**6:! 0)(!+07( 0EU 0,3* 1 #- & 3"* 0'<'0' 0'  "!- 0'J<
 , 2,.' Z('<a* '&
"!- F0
 "!+ , &*!- .' !E4&
"!+1 <'0!QU <'."208*?
 7 <"!\ &* 
}*'': <'*#- <' ,""
(* '3"+~6uht e`t p|zex
t Xqex`v66=F ** 0&
!%1' '<'0!\*
!+95 &   5 <'"
2 240
(* '3"+7=
_ 0T#- -'!+08&
!+1" <'0!%8<"."!QN J *"!/( 0'& W*'&*  <<"*.*&*  #- &6 "!
 7U 0<'5 2,( "2
+ !<" !+&6+ "2
+5 7*EU6M* 35 4#- &* 07* "  <' <<
 ,.  +&0"!Q!+&6+ E=\ &* 
!+'( 07
* ". <  2 & " 2 
I0M
!+'&*(*"!% '&  @4<'< *+08&*!+' <'0'( 0!\8& "! 1 '<'0!E2 :!+  W';#- &*a"!+0E=_
0'
2Z* 0'<0J<" " 2 '&
* 2 I0 * <'0'J
@" 0)(*0"!\ 0'8 " I0"!%J<" ""+\07JI0<" 
 !- % * '' pX=_ 02ZI0'<'0!%'&'(!% <'0!% ** <0(!- *& (* " 2
 W(*0"!E 0
** !- 0J<"} """+\0JI0<"  !- %  8". pX=
\ &*!- .' !E4& "!+1 <0"!<4#- &*a!+0'(< "!\.  7 &02,( eR+0<7( 7
< 7
<0<5
&0"25( eR: < <<"e# 0!-2 * 0<"e#- &*a! 0\=_ W(* "!I W29J<'!% 4 * "  V "!X#- &*a*"! 0E=/0!
'('* 07U
 *"240'83"25(*V* !7&0E <0&*2
 &* @4<'"e# 0"!-2 I0,<'4#- & a"!+0)(* "!+
"63"*,3*"!%20'8 &*!- . !E &*  W*'O='cB 4 *V43 7-  <""e# 0"!-2  0EU
"2,(**V "240' M 7
<0W 8&   5.  J<) ""M4 7*\=*_* W  &*  ) ''
*?
+ <"!%95 &   5.  ) ''M  "!+95 &   5. 
, E=
F *?
+" * @78<"&   ) ""\.* 
7U 524 M*0"!QN <`%!+ .* eR+0*!+9, &*!- . !\2Z*I0'<'0'
3"5!%'&60E
0V*&
7 0J< %I0';% ( 0J<&60E%" <083**5('*'<!%(!% 7 !74
# 0!-2 * 0<"e#- & a!+0E=*h < 5 0<" 02Z* 0'<08&*!+' "6&0!:!+'( 07*<" 
+
&0"25( 07*
  *  7< &
 !- 01!+9*#- &0M 0,  2 &
" 807.YR-*I05 E=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  , 7*
 '3"*%7l
~6uht Xe`t p|zXx t Xq`xev6
2,( "247% 7l ~{v6v
\ &* 
5 2,( "247
 ,  
 !I#+ &
5 4M 0, 2,(gN W(* "!% 5 *&60!Q( 0!% !E %   <' <"
3"W( 0<"!ON * "!  0'4& "!+1 <'0!+'='\ &   ,!+'(
0E
* .' <"  24 '& " 2 7 0

M!+'& "(*"!+ &  @8<5 0J< * 0'J<5 


&
7* E=
{~ v`v
qe{v6g
[!+ 580.R%I0W " KF
0<".!QN 5a ".!/ 1 5!+ *V*@7( !% 5*
!6+
&0 6-!:*&6I07!*?*& ( 0,7 5 2,( 2"
 '&  @78<"5* W'* * &* 
<) '""O=
   &    -    

k*
0+"*"2404 '&
&
05 5 0'T#- &*a! 0'8<'520'<" 0J10724Z-!- &60'J0,  0#IgT "!+<'
240'< <'0,1''0"2Z%!- &07U
 *"2083*&*!%' "!\'6%!% 102*%!ON , ,2  0\= G020 
2*&* 07 @,4&
(N %' 0'4 "
 "!: 0!+'U* &0'<" #- &
'&  @8<102%!QN  52  0W!%3 !%
2*&a*0- "2,( 0M4*  &6%  <' <W2 M(! 0E( 7 
, !:! 07!+'=*B0"20 .20'U
&** 7
<05(*'&* #+ "280'8102%!QN 8 %!% Z8<'5 8&   J&07!+ *V*@U* 20'  2  <'0
%!- 9"*1"' 0';M4&  <7!+ <0='cj
7
<0W J&*  <5
-   <' <)J74%Y M "g
I,
W(<
2XR%0"!% "!"`% "2(*0,25( ' <'0M"e-!+ . XR%0 < 00<", & !+ &
&* @78<1''0"2%!QN '='F
 *1 !<,(*'&* #- & "!&
< %!- 97 1' 07U'( 0'<"208('&  #- &
!/(
0N 1'0E 0'J !-.' %!+ "!- 0''U 3*
(<7J "!&
@*&
* 0'U( 0"gN 1'07*0 0)( 7
0'U*W *&   
0,&607 17YR-!+0''='60".R%I0
;'-Y M"|I\UM80%!+ 8&   ;<W
-   <' <7U*&07
 !I  1'02%!QN ,81'0"2*-!QN
% !+ " 1' "!3  (<",!%*<'!- V* !O=
/0!eR%"2,( 0EU
3!%2408&*!% !E"4&60&*a,"4  7hU*"; *V8<"'( '&  #- &
"!
%!- 9" 1' 0''U( 0'<"208'( &* #- & "!" (*"!$#- 6<'"&60&*a*&020W( 0N 107 05"80.R%*+0
;'-Y M"|I/=_107U'   <'0)80.YR-* 0j- 7
7' I7QU* (
0N 107 0)(<"
.<"  <" ! 
J%!- 9 17 0=_ 5 2 '18<5 5 V*3' "!+< <"5 4#- 1!% K:CW26-!% "
(*"!$#: 6<'5'4&0'&a&
0240W"(*0"gN 1'07 0E='
 2 1"4<, <"!%&*a 4*(
0N 1'07*0'
.<"  <" <0,;-!- 97
17 0=

k "240 "!%


'<08"4 !+7 < 2  07U 'M3" Z, 0U * "240'40.YR%I0
--  % "/( "!+ &076 ! % !\ 0;-!- 9
1 087T#:!% "YR% J<%!- 9"*1"' 0''= k3!%"240


0"2,.'!+' "!7"`0.YR-* 04 '  U*
280'4'7-" ;7*+$( "!+ & " &* "!\ 
'(!$#: &* ;M 1'0"2-!QN E=
*(!+01!% 2 ;02Wg6#%0*('(= R% * * U* 5 8&* 
';7%Y M "g
I\U
:  7' I7QU
--  % "QU
M5j- ; +- 7,(* !+ &*!% !E"4&0& aE=_ W7 1!% 'K:,2,%!% <0
!+7
<"!- V '&* 07*( 0<"!:&  <' (
07!\;'H
"g
* +*\=F4 2. 'U  N$  8 V' 
2%!+  08&07
I0!Q
08(*'&* #- & <0'84"`07.YR-*I0);'%Y M "g+\=_
0';%!- 9
17 0
! 0`R+0' !%  
0';M8072.'!%' <'04 5 V 3" !+< M42 "!+& <'04 5 <"!+'&*a 7#-"! 0E
&
 & ' <'0'8 " I029% & 247
 W( 0!760.YR-*I0);'-Y M"| 5&04F- 7 ' *% 7"U
j7:" ;7 +% EUM%- % + E"=

c 8 *&    0)( 0"gN 1'0*0W(  0EU


 2  "! 6<, 4#- 1!% K:C7U*'(*&* #- & " (*!I#- 6<'5
B
&0'&*a & < 5 <'0'\78XR-2,( 0);7]"| *'"=
j

% ",T'%YM "g+

c  !/'40.YR%I0)J7*QYM"| 5; "8 "*&*   0&0240W* "!E 8&* 


8&0!+ V @7
j
;'"I-Y M`-+%M4**
0W29J *&*   0E='F &*!+ '&
&  @8<W80.R%* 0);'IkM "g
EU
 2,( 27 (&* #- & 20'8`% ( 0<'102%!QN 3*4  240'8 W&   !O=_* 
07( &* 0E J
075 c[J 9*h|
cTU  TJ 9 [|
cU j=
" T4 3 9*BFz
cTU
j>
" 4 3 9D J 9*h|
cTUM8j=
" 4 3 9'Fj=
"g 9*h|
cT=jI07 &
8
" '&&* 07* "240
 8&00!+<'7* < ;M4&0
+ <0"!7<'4#-!% YR% ='w0+"20'J3<&* !:  60".R%I0
;'-Y M"|I5&**9+ 8&007! <"" < a *M 0'J< *I0''
*& " &* !%9
"
 029*% &
2
 E=

 !+ 1247 0<,B@'< 1'0,K:C 26-!% 54XR-"2,( 0< 7(  &


&* @7;'%YM "g+\=_ 
N$ ' Wn6K:52%!%  &*!+' '&&* @8<5"J07.YR-* 0);'%YM "g M (*'&  #- & '&  @8<
 1072*%!ON 5  &* |=
w('ZJ<5a .!7& !% <0,60.R%I0);7%. M"g
\U( 0<!QN 7** ! *5 J0%!% 8&*  '=
k3"!+"240* "!"'j- ;"+I7QU'(
0!eR%25( 0EU(!- 2"!+0&*!%' "20"80.R%I0
j7:" ;7 +IQU 10W W( * 208"60".R% 0}T'%Y M "g
I\=_ N| ' 4M4
a & "*? '&`+ 2+ 0E=
Fragmento de Cdigo 3-2, Usar un GeometryInfo, y las utilidades Triangulator,
NormalGenerator, y Stripifier

v`6uwv| {G6y[vY)ve6uwv| {6|veujv| gt &?w^(7?j B \E "( %


6y t {vY$e6gxy Xqveg~{egx6y qgvqXqe%
6y t {vY $$y 76e{g$Iy X7`e{{-

t
zt
t
t $y q`X6e q6`| hXv{W$y q`e qX6$|%
t $ t $Iy q6X6e qgv6g6y -
t
 t`Iujq6 v6Xv6gq6 B[vY"6$ujq v6v6gq6Ig%
 t
t `v6v6gqgv6`Iujq gy %
 t
e t |$y ey $y v66
hXvY |Iy `y $y v6$|%
t)It |$y ey |6y %
zt
t q6v6z6Xq6 [v{ q6v`zg%
tDq6 It {vY `veq`|q6~{v6gqeYveq6|q6X~vX-
tDq6 It {vY|v`6uwvY$ gy t `vY|ve6uwv| $gq g$-
[ '
'*+5'%kM "g

*_ &*  5J'%YM "g+MJ*8&   !+" '&* 0 < ; 072 "2.!+0'J<"*( 3*+
~6uht Xe6t p$zx
t Iy t eve6ujv$ M8
08'.&  *J<"54% Q=*_* ) 1"'!% 'K+}2,6-!+ "9!-.0"6<
6+ 8&* 
'=

*_ &*  5J'%YM "g+@ 0% "*,"4&60E


%!:&I0"!"M44Z"6(&* #: &
240'8`% ( 0<'
102%!QN  (*&* #: &
!/(
07!E 8&007! <* '<' =
k'2 "!- 0<,B07 %!+&*
 07!+J<"5 ,[  5;'%YM "g+
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
60".R%I0);7-YM"|I,J<0E <W( 07240'%!+ 102%!QN 3"!+"20* "!
   .!+"!QN 8<'W %   < <"J<" *  =ch* 8 V83"4+"20 0J<" *I0'84"`0.YR-*+0
;'-Y M"|I\U( 0'<'2808" ' !: 0, &*  3"' "!% 0 I0< 
 8&   J<W
-   <' <
(* "!+ 5!%'   V* !07(*"!+ '&  07J
0.'!%  U*&0"240,1*"!% !*"(*"!$#- &  J0,&07 *!I% !- 0,"
#-!+ YR%  !+1 (* "!% 5* W!+ <"!- V '&* @7298 #- &  "
 E=_ 1"072*-!QN  &
!+1"  
&0"20,87460.R%I0};7%Y M6[-%% M8<'  hU'(*"!+0Wa M (*0'&
J07(*&  07*
(* "!+ 0.
+*"!< *+0J<"60".R%I0E=_* W('! 07( W;'-Y M"| 5&0
% "* " 1' J *&*   
 %   < <"'U &0240,"6&
9 &* 0<)N$
< &
(* !% <" * 0*05
<" ? <0;M807.
+*"!< I0*0
*
'<0'4'*6-!% ,6#+0!-2 '&  @78<1"072*%!QNg ,
<" ? '< O&0"25(* &6+ &* @*Q=
ve6ujv| {g6$y Y
e$y uGy $y rYve
G07
-!- M*M"J07.YR-* 0);'%YM "g EU <07
<"(!- 2 % *'4 0<"

POLYGON_ARRAY posiblemente multi-contorno, posiblemente polgonos no


planos
QUAD_ARRAY cada conjunto de cuatro vrtices forma un cuadrado
independiente
TRIANGLE_ARRAY cada conjunto de tres vrtices forma un tringulo

independiente
TRIANGLE_FAN_ARRAY el array stripCounts indica cuntos vrtices usar
para cada pala de tringulo
TRIANGLE_STRIP_ARRAY el array stripCounts cuantos vrtices se usarn por
cada franja de tringulo

*_ &*  5J'%YM "g+%  52*&a*0'2Z* 0'<0'=& a0J<""  0J


0,(* !%
  &
&* 0 "! 40.  7 ! \< *I0'8<'&
007! <7 '< U &0" 0"!+'U'N|*<" &'U
'("!I#- &* J0<
&007! <* '< 8<'+ ? -!- 7=_ W2 *M*0"!ON <'5 4 (  &
'&  0*J
@" 0W * !%97 0( 0'&
0
<I02ZI0'<'0= k 4"2. !+107U*J&0E6 " 7+5(*0'<"!7'( '&* #- & "!E 1"072*-!QN 
&** " 3 !/ "`<<'+   M8<'eR% "
!+I0,&
" &* <0E=
_  W "!+&  6<'W4Z*+0<0J<"5 ,[ 
W;'-YM"|
rYy xB|ve~ue{gv Xx6y ~veg
w'&60E
%!: M*, 0N$ < &
(* !% 1 "!% 7% V "!E 5 6# 0"!-2 '&  @4<&
07**? @"=
rYy xB|vrYv6g{v6g
g ' !  60"!+<""4<I0'<"     =
rYy x{vgE6 6 Yxy ~vXIy {l  6~{6 6 x6y ~vX{
kj" '&&* 07* "6 "!-!% M8<)N| <" &8"8 !-!% MG0 0"!O=
rYy x{vgE6 6|76 6|zYk  6~6 6{
kj" '&&* 07* "6 "!-!% M8<&0" 0"!+'=
rYy x{vgE6 6|76 6 k  6~6 6{
kj" '&&* 07* "6 "!-!% M8<&0" 0"!+Ui MJ0%!+0'2Z*I0'<'0'J
+B0 0! =
rYy x{vgE6|6X$X{g$y Yl  ~{6e|E`eY {
kj" '&&* 07* , 5   <&607% <0"!7<'&
0
 0"!Q 0''=
rYy x{vgEe`|x6y qgv Xx`y ~ve$y {l  ~e6gxy qv Yxy ~{v{
kj" '&&* 07* "6 "!-!% M8<)N| <" &84"6 "!:!+ M8<,&60'0!+<* '<' '=
rYy x{vgEe`|x6y qgveY y $zYk  6~{e`|x6y qY|vX
kj" '&&* 07* "6 "!-!% M8<&007! <* '<' =
rYy x{vgEe`|x6y qgveY y $zXx  `~{e6gxy qXve{
kj" '&&* 0* " !-!% M8<&007! <* '<' =i M80%!%0'2Z* 0'<'0J**+B0'0!+<"*  =
rYy x{v$6$ujq x6y ~vXIy Yl  
6$ujq Xx`y ~ve
kj" '&&* 07* "6 "!-!% M8<)N| <" &84"6 "!:!+ M8<*(*"!$#- &   0"!:2 " '=
rYy x{v$6$ujq  v`~6|zl  
6$ujq

k " '&&* 07* "6 "!-!% M8<'(!$#: &*  0!:24 " =
j
rYy x{v$6$ujq  I `ql 
6Iujq6 {
kj" '&&* 07* "6 "!-!% M8<'(!$#: &*  0!:24 " =
rYy x{v |Iy X6`{$y Y  6|$y X6`{
kj" '&&* 07* "6 "!-!% M8<"6&07 '<'0!"<"4#-!+ YR% =
rYy x{v vXs$egv``6gx6y qv x6y ~ve$y {l  egvs7e6gx xy ~{ve{
kj" '&&* 07* "6 "!-!% M8<)N| <" &84"6 "!:!+ M8<,&60'0!+<* '<' 8<' *?
:!% E=
rYy x{v vXs$egv``6gx6y qveXI*`y { l  XgvXsY7``|xX{
kj" '&&* 07* "6 "!-!% M8<&007! <* '<' 8<' *? -!% E=i *M80-! 02ZI0'<0
 *Ib/ ? -'!+"G0'0!+<" +"=
b\0'<"  8&   J<UT M*<" T`<'W;'-YM"|  5  8<"8#+0!-2 * 2  "!O=_
0'
 1 "
 .' 03"8<W!+ #%"!+7 &* 52%!% " 0'8&0 6-!:*&6I0";M2Z*+0'<'0(* "!+
: *' I7QU*F%-  - "OU6MWj7-" ;7 +IQU*"46+07! <""U*3"8"60"!+<4783*
 5 * !QN (* "!% 55 ch;J 9*h|
cT=
_* 5 %   < <,j- 7
7 I7
@" 0
5* &0781072%!QN } ch;J 9*h|
cT= %! 0'
0.YR-*I0'J7%Y M "g
,&040-!+ 8102*%!QN ('!- 2 %  J
@" 05* !QNg "%- % M
j7:" ;7 +IO=
&0 6-!-*&6I0!/( 0!"<"*#+'&6I0)(* "!+ 5 &* 
j- 7
7' I7"* 2,( 2+&*!%' 540".R% 0
: *' + 7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  j- 7 ' *I7
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
: *' I7'* 5 %   < <)( !% &07 "!I% !\( 0"gN 10E
0'4 !:.' -!+ !QN 04;-!- 9 1 0(* "!+
3"W(<" J*!\!%"*<"!: V* <0'( 0!" *  ,[=_ 0(
0N 1'07*0'('*'<8
!&@7 & 0'U
 0)(  0''UM('<'78&
07+*"!7 1R%"!+0=
$y q`e qX6$|
[!+ *+ 5** *0,eR%"2,( "!"<"j- 7
7  O=

 f' &0W2Z*I0<0,<5 ,&   F- "*' I7(* !% %!- " 1' "!\40".R% 0
;'-Y M"|I/=
k'2 "!- 0<)4Z* 0'<'0'J<5 ,[  F-  ' $
rYy xj$$y q`X6e qv6|ve6ujv| {y
\ 5!- % * &60E6 ' "!I+"`0.YR-*I0)J'-YM "g <
<""`% ( 0W(!- 2 % *0
 ch;J 9*h|
cH 'e% ( 0)(!- 2 % 0=
" 4 3 9 Th|
c* "*<0+Z'& &
;<
< &025(
0'* &* @4<)(
0N 1'07 0=
 f' &0,&0 6-!:*&6I0!<'W &*  F--  - &*!+ 580.YR-*+0,--  % *- E"=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  ,F--  % "
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
*_ 5 %   < <W:-  % "7& 2. "`% ( 0)(!- 2 % *0<'"60".R%I0)T'%YM "g
, ,* 4#-!- "YR%
<4-!- 97
17 0=_* T#:!% YR% J
5a & " * "  V* 
<05 0;%!: 9" 17 0'8 0J< * 0'
0!- 1 *  ;M4&07*'&6 97
<0" 0'GR: 0=
 "!+ 0". +*"!\'2eR+0"!/!+'  <0*<".5!%'   V* ! 7+5:" T"++ 

0".!+,60".R%I0);7%.M"g
/=
| $y `y $y v6$g
[!+ 60".R% 0,k%!-( #% "!O=
 f' &0W2Z*I0<0,<5 ,&   5%- % ( "!% ,&6076 "!I% !\ 1''0"2%!QN <540".R% 0
;'-Y M"|I/=
k'2 "!- 0<)4Z* 0'<'0'J<5 ,[  5%- - 
rYy x$$y `y |vXujv| {Gy
B "2.' 5 102*%!ON &07%" <" 7460".R% 0);7%YM "g
I5"4 "!:!+ M8<4#-!+ 7{R- 
<4-!- 97
17 0=

_* &*  }7-" T" I7+ "*<0'8&07


%!:&6 0"!+=*(!: 2!+0,&07 %!-
M5
j7:" ;7 +I7&607';   0"!\(*0!<'*#%'&` 0W( "!% "9 1' 0<W(  1"E='6 1 <'0
&0 6-!:*&6I07!\(!-2  5 (*'&* #- & '&* @8<9"*1' 0<W(  1E=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  }w7-" ;"+$7
 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
*_ 5 %   < <Dw7-" T*"+I7&
 &*' M!+    J(*"!$#: &* J<'5807.YR-*I0
;'-Y M"|I/=_* ;(*"!$#- &*  0"!-2  J ,
% 24 . 
97
<0*4"6 *9"    J<'5
 # 0!-2 &* @E8<&0'0!+<7 '<'  *<'*? '<' =
k*6%!%0J< I0'
056 97  <'*?* '<'0''U
 
&*!+' "!+ W' 5   <WN$ < &
=
k6<0' 0W29 7%!: 9"*1 0'J<" 280'<" 0,&0"25( !I+ 2 240)N$
< &
<",&60'0!+<* '<' 
"**: "*"+I77 
 + "!%91*"!% "!E *"( !$#- &  W( "!+ ,e *Z"!I% &7U!+   <'0,7
* (!$#: &* W('  <' E=
k6<'08&00!+<* <  0% "*""
2 240}N|
< &
,"
I0E & 
  <!%98<'0J'("!$#- &* J
(* "!% < U *&   
0*`% "*" ,2 *2 )(
0'* &* @"=/6 0
!+' + !+974(  1,%!+007.YR%I0\=
k6
0(*&*a "2083"W%! 0'8<'  0'
 0, 9
<" ? <'04 (! 0E( <" 2+7U
<."240'  2 !7
ve6ujv| {g
t gv`~ue|v XxXvsvXg:=
/ 0!"(I07U*  1" ; *'&
'U'%! 0W20'< 0% "*5(  1"7= k6<0J*(*"!$#- &  
%!- " 1' "!%;< #: "!+",(
07!E29J< +''
*  7U "
I07*& 8"X Z! % &
0.* "*<"!-9<0
'(!$#: &* J
(* "!% <" U& !+' *<'0W,(  1<  &607
% f*054"
240'<" 0\=\I0,
(*"!$#%&6I0}( !+ , . 0!+<<W'J . 0W  3'  <"54& .*07U(
0!7XR-25( 0\=
 6Iujq6 v6v6|q6$g
G07
-!- M*5"Ww- T"+I7&04"69
17 0<')(  1"5(*0!"<*#+'&`+0 o7= *
!+ '<" "'U
0D L=
6Iujq6 v6v6|q6$gxeXe vBgq`x6y qY{
G07
-!- M*5"Ww- T"+I7&04"69
17 0<')(  1"'( '&  #- &
<'0,!+ '<" "=

F
%!+5 0'2Z* 0'<'0'J<5 &*  }w7-" ;""+I7 ,  &*  M*"4 " 1 0'( "!%
  &
&* 0 "!E0". +""!79
17 0<"W(  17*7U
M4&
9" &* 0<(*"!$#- &  (* "!+ 5
102%!QN <W'40".R% 0);7%. M"g
/=
k2 !- 0<')4Z 0<0J<"5 ,[ 
jE-" T*"+I
rY6y x`v`v6|qv`Iujq6 |v`ujv| {Gev``uj
;"!% (*"!$#: &* (* "!% "60".R% 05;0724%!IM"|
# 0E=
xX6e` vGevg\|veqX{v Y v`|
w '" e   0"!7 '&6% "*( "!% "9"*1' 0<W(  17*7U*!- < "'=
rY6y x{vgE$vXqe{v  v6gxeee vBgqex6y q6{
kj &
&* 07 ,9 1 0<"W(  17!% < 7 '=
(  4   5 

i M8<'0'T# 0"!:2 8<', ]* <" !" *?


 0, 5" , &
 
*  7[=ch* 4#+0"!:2 , * !\ &   
w
/% L YEM80%!%  * "!E &* 
/L 7[= .  2
 7U < #%!+7 &* 83", 0
0.YR-*I0'8% L
. EP-  8<'0'J< 2
 0E ;M 0'J0.R%* 08& L 7%  8%!+
< 2"  07*= %!% <" #+"!%*&   17 #- & + 4# 0!-2 743" &*!%' I0
0.YR-*I0'=
_ 080.YR-* 0'8/% L
. E
0(*0"gN 1'07 0!%'&`+  1' !+8&074"e+ ? I05 "(  & <'0,&0"20W
 *? %!% E=_*0';07.YR-* 08/% L 7d0780".R%I0471"072Z*%!- &08&*!% '<'0'8&6072405"
*?
-!-  @E8<"e+ ? I0\=
G0240W" .&  *<W*'EhU 08eR%"2,( "!+J<% L
. ES(<4 !Ea' R%0J<
0.YR-*I0'47 7= !+  + !E807.YR-*I0,& L Y E>"" , &
 
*  7hU  2,( "24%
&*!+' "2404"`0.YR-* 0& L Y \M 0, ] '<" 280'8  &
" !: 01!+9*#- &60\=eB3"N
+*"20"
 "*&    ,!%&
*+ 7=
1. Crer un objeto Text2D
2. Aadirlo al escenario grfico

_ 080.YR-* 0'8/%L
.E , 2,( 27+  *  <'0W"( 0N 1'07 0M 4+ ? %'!% 7='*(
0N 1'0*0
;%!+  (* "!%
 W(* "!% 3"
@ 0 ' 4 '  .' , I*?
-!% E=_   ? %!+ , &
<* <
 *? I0
" '&&* 0E '< &
0 0(* !%9"2*%! 0'8<'4#-
 MJ%(
0,'(*&* #- <0=_
0';% ( 0J<"

 %!+ J<" ( 07 .' J<(*7


<""4<"5'*%!+0*  2 E=j07!-2  24%U*+98< (
0E . 
G0'!- !QUiw *% & 7UbF 2j072 U 7%!%0%!+0''=*[* " 3 !#-
+<" (*07 .' ""
wdb}+ 2.' Z"46%9< ( 07 .' W(* "!+ , (  &
'&  0*8& L Y \ M8/ L
+7w=
3

% ,"4&L Y\

 !+ 1247 0<,B@'< 1'0,KQ 26-!% 54XR-"2,( 0< '<" &* @8< *?*I0C7 W*

&
* E=60".R%I0,%L
.Ed
&*!+ 7 gN| ' JCnT CE=F6 &
0*%!-*&6I0!QU  
(&* #: &
" &
<"" <' *?
+07U*&0" 0!QU*`% ( 0EU "e "2 ] 0M%  0<'5 4#-+E=F
0.YR-*I0,& L Y Ed
 ] '< 5 
& "  5gN| ' C*= .* "!$  , 
+*&  y uX6
(* "!+ )07 N$  ** < W(* "!% , 8&07  
 8<'%  0'J<'4#-
 7=
Fragmento de Cdigo 3-3, un objeto Text2D

ty uG`p$qXrYqt q6e` v t e` vY
ty uG`p$qXrYqt qY\It *6gxev6 Yq 6{I
zty uG`p$qXrYqt qY\It 6|q`uwv
ty uG`p$qXrYqt qY\It vrYv{It O
ty uG`p$qXrYqt qY\It e6YI
ty uG`6~6uht e6t p$zXxt {|y et qee vIt  q`y 6|q`uwv

ty uG`6~6uht e6t p$zXxt {|y et `ve6uwvY$ t *vs E


 ty uG`6~6uht e6t p$zXxt {|y et `ey rYv6Yv
t L
 ty uG`p$qXrYqs`t ujvex6y q
t p$zXx t O
  tDy uG`p|qXrYqs`t rYve~ujq$6t O
e t
t 6 vXs eGgv6xev6jqy  v*vs 46Op|ve~It
P
zt
tDeee y ~F~Y qX{*vYs `jvXsv6XxX `e v`
t
tDeee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|
t \gveqgvj$vB|e6e$XvBX|q`X~Yw6gq6`
P
  tgq6~YXF|6ew6Op eY hXvY}|q6X~Yjg6eeg-
  t
t \gveqgvq*vXs  v`q
exev
{q`xexhy egw|XvwY~v6vG6gq6e6t
P

 t)*vs ;|vs hXvYW
vXs 7g JvXs
y FqjgvsIX|vexhY X6:
e tDvY)76 6|zY|  t  t  I t  %
zt)-"v rYv$y ~qe:   q `6{It 7$%
X t}6Lp XX t qexex`\ey x6 gvXs %

b/*? IC7(("= R% *  ,(!+01!% 2 &02,( *+035 &*  M "X#:!+ 172


I0,<'&
@< 10
+"!- 0!O='F4+XR-25( 07U*"`0.YR-*I0,&L YES! 0 07.!%"`0!- 1""4<,  &
 7=
[ *<0*eR%'&
 5  7(  &
&* @7(
0<'240T !QU(
0!< #%'&6I07U*3"*(
0N 10E
0
 *? %!% <'0)*0,T '  .' &  7
<0*4 *<" <', %!+9'=

[ 1"
0'4 *-!- .'
 0'J<5"J07.YR-* 0%L Y\ 5(<""240'< #- & "!'  !: "*<'0W 5(* '3*+<"
(* "!- 7 &* 5!+*#%!%*&  <0M`m+0,"j"G7*7*" Q=' !+ 1"2
I0,<B@'<" 1'0,K%
2%!+ ,&@< 1'0,3"W240'< #: &
"60".R%I0, & L Y 'EU*&*!+ <'0,78" 7!+ 12"
 0<
G@'<" 1'0,KQ =
Fragmento de Cdigo 3-4, Haciendo visibles los dos lados de un objeto Text2D

t eveq6gq~vwvXs ev`q6w|vYs x
t Xv eXvXq6gq~{v6g%
` t
tP6vw y  y vXjY6~{exevhujqv|vG vs 6Op|ve~ Q$Xy x`vext
 t*6 e` | y eYvej |Iy w[vYD  e |$y eYgvg-
 tD |Iy 6t {vg/X `q`~vI 6 `6 |$y `gvXet \\XB`I?w E %
z  tD |Iy 6t {vI*q`~{G 6qe~{v6"6$ujq  y e |Ive%
z t5|vYs{ eveq6 t YvYI*6 e |Iy e|vXYI6 $$y Y-
_* 4+ ? -'!% & !+ < )(
07!E80.YR-*+0& L Y \P "2.' Z(<, "(  &
"! 
, 0-! 080.YR-* 0'
' * " '=`B 3"5  (  & '&* @7J<"  ? -'!% J 07.YR-*I0'T ' * " 8460.YR-*% 0<
B ('N : 0  0<"XR- !+240'8 '3""NI=
[ '
'j
' +,+'4%I';&L k\
*_ 5f &
&*  W*&  "!: 4 &   /%L
Y\[= G0"20)( 0'<"20T "!<W ) 1"'!+ K U
/% L YEd* &* 
<", %   < <53"<" &  "*<<",G7*7[=

k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  &L Y\


 '3"*%7l
~6uht Xe`t p|zXx t {$y et eve6uwv|
\ &* 
&*!+' 5"!%&6+9 1 0,<+ ? %'!% 52 (*' <'053"52-!+ 5 & <* <' *?  0
6 ' '<' )( 0!"   "!- 0EU <9 <'0 5  (* "!- 7 &* '2 6-!+ <" 7 0'(* !+92%!+0J<"
** !- 0E='` "24 ] 0<" !+&6 97 1 0 M82 (* <' *?
:!% \6%9<"*+"!:2 <'0)( 0!E 0
(* "!+9"2*%!+0'J<5 8#:*7+W(  <08 "&607
%!:&`+0"!O='60".R%I0W'Ed!+'  +
!-&6 9*1 0%!- " (* "!%%  ?&
7( 0,`  ? I0 0'&
  V* <'0, o7U*o7U o=
vXs  p|qrYq
t qt $$y Xjgvs{ {7 6|zY~6 6 QpgqXrYq
t q6X
t |$y jg6{$"q6uwv

y {eg6{ y {v
Xy Ye{ ve
G07
-!-&`+0"!O=
074"&607
%!:&6I0!7/%L
.E[Ua* M2Z* 0'<'0\='\6+,2Z 0'<'0
" '&
&  0 "e#+ &6I0!"<"
G

&
 W(* "!% & !%' "!0.R%I0'J&L Y\S2 *M 0!+80W2 0"!%83"` "24 7] 0<"5(' 0
(&* #: &
<'0E='\ 52Z* 0'<'0)*0f
- " 4 !  @7)n*=+n*= ?4<"X$UM* 3 @ 0

 %   V* &  "*<'0 '(*&  #% &
` *?
 0E='F 4 !  @7)n*= C 5a 5 
%! 0<&  <0W2Z 0'<'0
{v vXs$g7a '&  "*<0)f % `{v ve~gq`X6 v ~q6 ev eq`~6$|Q=
k'2 "!- 0<)8Z 0'<'0'J<5 ,[  /&L Y\
rYy x{v vX~gq66 v ~q6 veeq`~6$| XqX
vY ~q v`q`~6g
kj" '&&* 07 ,"X#% &6I0!"<,
&
" 5 * <'0}( "!% &60E6 !I% !\  "*&*a''!%
m-  -!% <", 5 2 1"=

(  4    

% !+ 4# 0!-2 < ] < !" *?


I0, W2"
<04 ' ! %* 6
* * 78& !% !\40".R%I0,%L 7
(* "!+  *?
+0E= "
%!% 83"/%L
Y\d&*!+' "`  ? I0,&0'J+ ? -!- U*/%L
E&*!+' 4% ? I0
*
7
<0,1''0"2*-!QN E=_ 102*-!QN   ? - 6<","80.R%I0,/ L
E'  ? %!:** @4<
 4#:*+E=
[!+ !\807.YR%I0,% L 7>(*0'&0W298&025(  &
<0,3"& !+ !/'407.YR-*I0,/ L Y E[=
*(!: 2!/( 
0,8& !%' "!\'40.YR-*
0 'E
+7d&607`+ ( 0<4#-
+7U "e+ 2 ] 0M4
6-  0  &
&* 0* <'0\=_'1'0 &*!% ,"80.R%I05/% L
+7S(* !- ," & <"* )( !I% &*' "!
*
7
<0560".R%I
0 E
7=*G0"240W &*  /% L 7> '.&   <);7%Y MU*
0.YR-*I0,& L 7>Wj'"G7, 7*73!+*#+!%7 &* <0W(*0"!\*0052980".R% 0
*'E[l
1. Crear un objeto Font3D desde una fuente AWT
2. Crear un objeto Text3D para un string usando el objeto Font3D, opcionalmente
especificando un punto de referencia
3. Referenciar el objeto desde un objeto Shape3D aadido al escenario grfico
3

% ,"4&L E

 !+ 1247 0<,B@'< 1'0,KQ 26-!% 5 &607



%!-&
&  @.9 &
<540.YR-*I0,&L 7=
60".R%I0 'E
+7 &*!+ , gN|  WnM8CoE=`+(
0W  '<058iw % &
=' 1* "
3"4% L Y E[U &** " 3"' !"% ( 0<" ( 07 .' ""wdb(<" !E* <'0}(* !%
E
+7
M( 0"!E 0 
I05""`0.YR-* 0& L E[=/6 &0 %!-&`I07!"<"
 'E
E gN| ' WnM8C'o'
 "2. Z8  '&
&  07* ,`I "2 ] 0<", 4#-*7+ Dno5(' 0';M  5 , ? %!- @( 0!
< #%'&6I0E=
_* *+ &* <5 gN|* 8C/nM8C'C,&*!% W80.R-* 0& L E>*
 <0,60".R%I
0 E
E
!+'&  "
+"2%&*!+ <'0}( !+ 5 & '<'7* O7Fb*? +F2 %!% 8(*&* #: &
,,("I0,<
!+*#+!+*&  W(* "!% "60".R% 0E=_ f % 2 J<0'J
7%"*&  8&*!% 780.R%I0)*'E
(* "!+ ,"`0.YR-*I0,& L 7PM 0, ] '<4 " &* "!: 01!+9 #: &0E= .  "!I * ,35  "
+"*&*
y uX`*<"5 5N|* ,&
 "!- W(*0"!%3**,** ,"80.R%I
0 E
\( "!+ 5 & !%' '&&* @74<'
'E
+7[=
Fragmento de Cdigo 3-5, Crear un objeto Visual Text3D

ty uG`p$qXrYqt q6e` v t e` vY

t y uG`p$qXrYqt qY\It *6gxev6 Yq 6{I

zty uG`p$qXrYqt qY\It 6|q`uwv


ty uG`p$qXrYqt qY\It vrYv{It O
ty uG`p$qXrYqt qY\It e6YI
ty uG`6~6uht e6t p$zXxt {|y et qee vIt  q`y 6|q`uwv

ty uG`6~6uht e6t p$zXxt {|y et `ey rYv6Yv


t L
 ty uG`p$qXrYqs`t ujvex6y q
t p$zXx t O
 ty uG`p$qXrYqs`t rYve~ujq$6t O
  t
t 6 vXsgz6 eGgv6xev6jqy  v*vs$z646Op|ve~It
e P
t
ztDeee y ~F~Y qX{*vYs$z6 `jvXsv6XxX `e v`
t
tDeee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|
t \gveqgvj$vB|e6e$XvBX|q`X~Yw6gq6`
P
tgq6~YXF|6ew6Op eY hXvY}|q6X~Yjg6eeg-
  t
t 66|z6Jg6{|zxBYvY
`6{gz67$Xv{
`$g-"v` rYv$y ~{qe:R`6{ t  / \  %
  K
66{ E s$$YXy eg$-
 tDvY

 t)*vs$z6;|vs|ve6u[XvY5 vXsgz6g6{gzexXvY |Iy 6g+z6'*vs{ %
e tDvY*y {|zY$+ Q t  I  t   t  g$%
zt q6v6z6;gvs Xq6vB[v{ Yqv6z`7 vXsgve6uj-
X t}6Lp XX t qexex`\ey x6 gvXs qvX-
_* W7 17!+ ,KQ52%!% W80.R%*+0& L Ed3"*5   %!+ 5 *?
-!-  @E8<"e- ( 0E='F
#- 1"'!+ U *?
-!:  @78 52%!+ ,"41"!: 2 %!% 83",`%(
0 ,2
%!+ 17! 0E=
 "!+ 5!%&*!% !7+ 4#- 1!- 78
*  7hU

0E*& 
!- 0''40.YR% 
0 4+"- "eM80%!+0
G + % 7  E O=j0)( 0'<"240J*" '&&* 07* "!"6&0 0"!<5 0T Z!I- &
  < ' <" " 874
0.YR-*I0,& L 7(
0!+3)
0 7*"208 '&& 
05 5 102%!QN <"60".R%I05/% L
+7[=

e *?
 0<"5807.YR-*I0,%L 7H(<0"!- 
 !+ <"," 1!% "4& "
% <" <,<4# 0!-2 '='_
0!- + '&* @7J*'( '&* #- & &0"20,&
2 *0<< !+'&&* @7=_* J<" !%&
&* 07 J
07,: 7 :U
IQU"U
M4'8"=
B < 07.YR%I0,% L 7% " W(
I0,<,!%*#+!+&* 7='*( 0<5!% #-!+7 &* W(* "!+ W
0.YR-*I0,& L 7>8"`0!- 18<"60".R%I0\=*(
I0<5!+*#%!%*&  <&
< 07.YR-*I0 
< #- )(*0"!\ &602,. '&* @8<& "2 *0M  "  ' &* @E8<"e+ ? I0\=_* 4b ".' K:C
2%!+ 5 0'8 #%'&6I08<W 8( '&  #- &
'&  0*8<"& "2  0M    ' &* @78
0.'!%,
0!- + '&* @78<` *?
 0M * %* '&* @78<*(
I0,<5!+*#%!%*&  7=
_*  -* '&  @78<"*(" 0<5!% #%"!+7 &* W('*'<<*#- ! 
*?'(N &*  27 

0".!+' & !- . "*<'0,"6&
"2
0M  "  * '&* @"=

_ 080.YR-* 0'8/%L
+7% " 7J"(*"!$#- &* =_*  < &
&  @8<'W"(* '3"*+<" 7( !- *& 
3"5 *&* 
M*5807.YR-*I0 4+"-  5'807.YR%I0WE>!+*#+"!%"*&   <'0) 1072*%!QNg
/% L 7H( "!-2 % !+95 5  2 * &* @74<'"`0.R%*+0& L E=
[ '
'j
'8" + 4784%I'T&L E
\  &
&* @('!+*7 ,"
2  !: 6<,!%*#+!+*&* W(* "!% %!+8&   *
'<' 4"
&*!+' '&
&  @8<07.YR-*I0'8%L
+7[l
/%L
+7hU 'E
7[UM] 7 3 L %-* "U 4 07! <7=_
 1"'!+ ,K{n6oW26-!+ "9!-.0"6<'&* 
8<'& L 7=

_* &*  &L E< #- 4  !- 08&07 %!-&` 0!%'=*B <" 5*0W("!-2  '(&* #- & "!
  1 0EU"
0,0I0'<'0'4 08 %!- .' I0J<"580.R%I0,/% L 7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  &L E
c 80.R%I0,%L
+7d & <"* <  ?  0,3 ,a &60E6 "!I% <'05"' 1'0"2-!QN
B
7[=60.YR-*I0 'E
+7<' !Q2 5  7( !-  &* <60".R% 0Dj'"B, 7*7
O=
B <'
0.YR-*I0,& L 7%  5"* W(*0 &* @78K',(
I0,<5!+*#%!-"*&  3" -f* ,60.YR%I0
/% L 7=` *?
 07S(< % "!   " !+'<<'0!<,( 0'* &* @*
7 <'0,<" #+!%
 
"  * "2 7I0';M4&
"2  0=
vXs|zg
[!+ 580.R%I0,%L
+7 * '&N 0E=_ 0'T * " 0!%(*0"!7<'*#+'&` 0W* <'0'( "!%  M80-! 0
&0 6-!:*&6I07!+J 07l

font 3D null
string null
position (0,0,0)
alignment ALIGN_FIRST
path PATH_RIGHT
character spacing 0.0

vXs|zY66|z;g6{|z`"
[!+ 580.R%I0,% L
+7&607460.R%I0 E
EP< <'0E=
vXs|zY 66|z;g6{|z`/ | y |Iy Xe
[!+ 580.R%I0,% L
+7<' 7
<05"80.R%I
0 E
IEM &
<"* < ?
I0\=
vXs|zY 66|z;g6{|z`/ | y |Iy X
X*6y {gzY Xy |y 6

[!+ 580.R%I0,%L
+7<' 7
<05"80.R%I0 E
IEM &
<"* < ?
I0\=F ('
I0<
( 0 &* @78<*#- *W',("
 0<W!+ #-!+7 &* W( !% `0.YR-*I0,& L E=k,( 0' &  @78

< #- ,7!% '&* @E8 5 
3'  56#+!- 0!E 3' "!+< 4#-! 0E+ 6<'5 1"02*-!ON 7=
vXs|zY 66|z;g6{|z`/ | y |Iy X
X*6y {gzY Xy |y 66
y q6 y 6euwv`Y Yy {Xq|
[!+ 580.R%I0,% L
+7<' 7
<05"80.R%I
0 E
IEM &
<"* < ?
I0\=

ALIGN_CENTER alineamiento: el centro de la cadena se sita en el punto de


posicin.
ALIGN_FIRST alineamiento: el primer caracter de la cadena se sita en el punto
de posicin.
ALIGN_LAST alineamiento: el ltimo caracter de la cadena se sita en el punto de
posicin.
PATH_DOWN camino: las letras sucesivas se situarn debajo de la letra actual.
PATH_LEFT camino: las letras sucesivas se situarn a la izquierda de la letra
actual.
PATH_RIGHT camino: las letras sucesivas se situarn a la derecha de la letra
actual.
PATH_UP camino: las letras sucesivas se situarn sobre la letra actual.

*_ &*  &L EP "2. Z"4<'*#-*4  !- 02Z* 0'<0= B '<' W 0<""  0 0(*"!-2 +
240'< #: &
! 
" '&&* 07* "! F 08 %!- . I0';<"60.YR-* 0,&L 7=\ &* 
 "2,. Z8<*#- *
 0'8&0"!-!+'( 07 < +2Z*I0<'0'4Y pX=
k'2 "!- 0<)4Z* 0'<'0'J<5 ,[  /%L
+7
rYy x{v y eujv6{$$y Y6q y 6`ujv6{
kj" '&&* 07* , W( 0N % & <    ' "2 "
I0}(* "!+ ,
 0".R% 0,/%L
+7j'"'G7, E*7Q=
rYy x{vg/q`|qe~gv` q`~y 6 $ eqY~q6gq`~gv6 q`~Yy e
kj" '&&* 07* "6(* '&  <0,
%!+&
"!% '&`+!%8&   <'0 &07
%!: M*5 &
'<'7 % L
+7=
rYy x{vY `{gzY 66{gzJ{|zXxX
kj" '&&* 07* "`0.R%*
0 7 E>*
<0}(* "!+ , 0.YR-*I0,& L 7j'"7, E*
O=
rYy x{vI*q$e$y q$
kj" '&&* 07* , <" !%&
&  @74<& "2  0<" *0<0E=
rYy x{vI*ey Iy eI y $zYXey Iy 
kj" '&&* 07* " ("I0<"5!+*#+"!%*&* <"  0'<'0\=
rYy x{v |Iy 6 p|qrq
t q`
t |Iy |Iy Xe

07( , & '<* <"&


!+ &6 !+8< <" (* !-9"2*-!+0'2 6-!+ <'0,<'7%!+0<**0<0
G
/% L 7=
k'2 "!- 0<,h (* &* <" <";<"5 ,[  &L E

ALLOW_ALIGNMENT_READ | WRITE permite leer (escribir) el valor de


alineamiento del texto.
ALLOW_BOUNDING_BOX_READ permite leer el valor de la caja que rodea la
cadena de texto.
ALLOW_CHARACTER_SPACING_READ | WRITE permite leer (escribir) el
valor del espaciado entre caracteres.
ALLOW_FONT3D_READ | WRITE permite leer (escribir) la informacin del
componente Font3D.
ALLOW_PATH_READ | WRITE permite leer (escribir) el valor del camino del
texto.
ALLOW_POSITION_READ | WRITE permite leer (escribir) el valor de la
posicin del texto.
ALLOW_STRING_READ | WRITE permite leer (escribir) el objeto String.

B < 07.YR%I0,%L 7d


&*!+ < <5"J07.R%* 0 7 E[=cB8
@" 00.YR-* 0 7 E
(<W  "!  W( !% &*!%' "!E"f'2"!+0W   2  <0<0".R% 08& L E=cB80.YR-*I
0 E
+7
&0
% , *? %!:** @4102Z%!- & <'& <" & "!% '&` "!7`% ( 0<'5 %!+ \=cB80.YR-* 0
/% L 7d&607( 5 J1''0"2*-!QN (* "!% 8#+0!-2 !E &
<"" ,(*'&  #- & <' E=_*0J07.YR-*I0'
'E
+7H(<8 !/!+&
0" &6 <'0'(
0!7"
!+'&0" '&6I0"!<5. '!+  4 *#%& "! 5 0'
0.YR-*I0'8% L
+7d&*!+' <'0'8 W(* "!I% !"<Zg=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  
"7 7
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
c * 8#Q*7+7&07   * 4#-
  * * C\PM8&
2
0,<*?
-!:  @7='\ 
B
&
2  0,<',*?
-!:  @78<
&*!- .&@204  "!QN e#- "*&60<"5* 5 *%!+ 7"XR-X)='
0.YR-*I
0 "7 7
5*
)(* "!+ ,  2 &
 !\ %!+ JCE*? %!:  07 < =\  %!+ 87
(<7** ! *W(* "!% &60E
%!-' !0.R%I08& L ESj"G,*7* Q=*_* T#:*7 87
(*"! 
07*   V* <" J 'N &0240, " 2 & " "2 
I0,<'4#-"
+8d78<" 
&0
&*'.'!- !% 
* 4#- %!+ 4 "!  @EJ<"
*  7[=

b/ "2,. Z"('<T *!l{R+ * * E=


Q=|'0EQU'0
:7? %!:** 0Ub ? +7
`|z`7 p|qrYq
t q\It `eg6{ R
` E

s $$y 6wvs|Ixev
q$
[!+ 580.R%I0 E
+7P< <"60".R%I0 7 "( '&  #- &
<0\=
k'2 "!- 0<)4Z* 0'<'0'J< 'E
+7
rYy x`v$6ex6y 
XsX$y {66 Xeex`v
X*6`Yx6y Y
*sexe
w*  *5 &
eR% >3",!%0'<' &@< 10<"5 %!+ ,(&N #- & <'0\=
p|qrYq
t q\It `6Y`evXY `6$g
w*  *5 8#:*7+ *  C7H  <" W(* "!+ &*!+ !E 07.YR%I
0 E
+7[=
rYy x`vY `6{ E s$$y 6e. ``Y E s|IYXy `vs$$xev*q$
G07( "60".R%I
0 7 3 L
%- E* <'0W( !- &*!+ !7+0.R%I
0 E
EP<
%!+0<"
(* "!+9"2*%!+0,(*&* #- &
<0E=
_* &*  
"7  5   &*!+ &
&  @8<","80.R%I0 'E
E=
_  W !%&  6<'W4Z*+0<0J<", ,[ 
 'E

 '3"*%7l{pgqXrYq
t qYE
c * &* *z7 3& !%' W' 5!%"('!+*+ '&* @ "!: <"5 #:*7+ = 7
B
< &   <<"T%*\ 7
/ 4% Q=
eee y ~#e{| |Iy hq6uwv
y {` v
y {6Yy {ve
[!+ 5 0 E
"<'
<',* 0"2,.!%7U %  0MJ+ 2 ] 0,<')(
I05(*&* #% & <0'=
 "!+9"2%!+0''l

name - el nombre del tipo de letra. Este puede ser un nombre lgico o un nombre de
tipo de fuente. Un nombre lgico puede ser uno de: Dialog, DialogInput,
Monospaced, Serif, SansSerif, o Symbol.
style - el estilo para la fuente. El argumento estilo es una mscara de bits de enteros
que puede ser PLAIN, o una unin de BOLD y/o ITALIC (por ejemplo,
Font.ITALIC o Font.BOLD|Font.ITALIC). Cualquier otro bit del parmetro de
estilo es ingorado. Si el argumento de estilo no conforma ninguna de las mscaras
esperadas, el estilo se selecciona a PLAIN.
size - el tamao de punto de la fuente.

k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  


"7 3 L
%-* 7
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
60".R%I0 'E
3 L %-** 4
5*
)(* !% <" &*!- .' !7"6&
"2
0<"*? %!:** @78<5"J07.R%* 0
'E
+7[='\6 & "2  0<" ? %!:* @8*5 * 4&0YR:" &* @78&
0740".R%I0 'E
Y\[=
&
2  0,<',*?
-!:  @78<*#- *e# 0*<'0<"&0
 0"!O
0,<'"`  ? I0,E[=\ &0
I07!: 0,
(*"!:("*<" & ' "! 5 &
"!+ <` *?
 0E=_* *?
%!Q  @7J-  807!- 1478"   !% "6<'5
 %!+  
<0n*= o5  " %'!% <5 , *-!+ ,294   7='&607 0"!:*0<.**!/280E
0 @7 &60,7
"6eR%X
 '=   !- 0!%(*0  . <5  " <" <,<, 0J<" *I0';M4<'.*, 
'1"!+ "!  
<3"6% ,% L %-* 7*w7*) 0&
"  5 
 "!  &&* 07 8 %!+ 4 <M '&
"
+;0
<
%!+0<5"  0" 5 *%!% 7='j0+9<*#-  < 5 
"  <' W(* "!+ ,*?
%!:  0E 43&
 * "
 
 "!  &
&  07*=
` E

s |IYy 6X|
G07
-!- M*5"80.R%* 0 7 3 L %-* 74&0 0( !%9"2*-! 0'(
07!"<" #%&6I0\=
` E s|IYy 6X p|qrq
t qY\ t qvvXs|$y 6 qvX
G07
-!- M*5"80.R%*
0 7 3 L %-* 74&0 8#+0"!:2 '(&* #- & < 7=
k'2 "!- 0<')4Z* 0'<'0'J<5 [   'E
3 L
--* E
p|qrYq
t qY\It q6v`v E s|$Xy 6 q6v6g
. %  ," (* !%9"2*-! 0,<)'07:E?
-!-  07"=
rYy xGv E s{|I{Xy  q`Xv6 p|qrq
t qY\It Xq`vGvXs|I{Xy  q`Xve
kj" '&
&  0* "*( "!%92%!+05*<')'07Q7? %!-  07"=
6     

/0!"<" #%&6I07U"X# 07


<0<5"" *"! 
0  !I% "6
*  7 '1"!+0
@"  <'0\= kw 42. !+107U
( 0'<"2404(*'&  #- &
"!"0-! 0T# 0E <'0'( "!% 5'*-! 0'42, <'0'T ' !I-* " '='

* * 7
(!+0(*0"!+&* 0E* 5* 4# 0!:2 #+9&* `<'( '&  #- &
"!E'&0" 0"!@  <0EU" 5 2 '1'U
102%!QN 0W" &
0"2,. '&* @78<"Z 08&0240# 07 <'0E=

 *<05(&* #: &


240* 5 24 1,( !+ ,e# 07
<07U 

0.'!%' & !- . ,
[
(&* #: &
&* @78<'"6&0 0!<'4#+07 <'07U 6*? 6+7=*[* 7
<0 (*&* #: &
5' 1"072*%!ON U
 <" .'R% 
0.'!%"6&0 0!"<'4#+07*<0,0W 5 2 1"=
_* 5f &
W(* !I%'(
0'  '( '&* #- & '&  @8<5;# 0E <'0102Z*%!: &0E=b\0<' 5
102%!QN <4# 07*<0*,(*'&* #- & &0"240)(+0'8"* `#%"!+ E=
k*6-!+
102%!QN 5/7 [-+ M"U 3"*W( 0'<7!QN 5!%"('!% 7 !6-!%  8  ] 0  V'U 0W'
: *
-+% M"U 3W( 0'<7!QN 5!+7(!%*"
+ !\20
+ "] 87 <" 6+ "*&  7=_* 1"0724%!- <
# 07 <'0 W(!+0M&6 
0.'!%  #-   0&*  <'0 5!% <"!- V* 7=
_ 080.YR-* 0', f  7 +  7Ng2  J< (  &
'&  @U 03*) 0(*!:2  3 
(< 78'( '&  #- &
"!"< #+"!%"
+T# 0*<'0'(* "!% <" #+!-"
+!+'1" 0J<" 2'*<0 ' !I- "g=
cB 0'<0} & 7 7* 9 &6% *0,&* 7
<0,!+1 @78< (  & '&* @7 "! *&
&* 07* &07
"X *0" 27J<" &6% * '&  @4<6h 8 | -)=
k 94 &6% 0'T * "!- 0'
0<0', f  7"
\U   0'<'0,3*,6+9,298O&!+&
 0' 60eR%0
 !%9"
 %   V* <0\=
k* 05a *M,  1f,
0<'0 f +" 5 &6+ 0EU 4 *+ * *5240%!% "!%9
*1!+0\=
k8"2. "!+10\U <'*#-  &  @78<294&
!%&
 0j 0, 9,(*&  #% &
<' E=/0!
&
!+&  0EU
   1'"X#+07 <'0,&07 0'Ng2  J< "(  &
'&  @29+"!:*0'83"*&* !:!%
 [ 4F | 7-W=
\ 2(! 0. ". 3"W'6-!+  (  &
'&  @*'&   5  '2 "!E 102*%!ON <"X#+0 <'0K-K
!-' "  < <,"`  "2 4 '   a'2 "*0W*0)(<)( !+&  . !E 0'J<' "  T ' * " 8
1!% "*<'8<" 6+ "*&  =
kG 42,. ! 107U 10"2*-!QN <'4# 0E <'0**(< !

0"2,.'!+' '<' E=_* 1''0"2-!QN <"X#+0 <'0)(*0<7!QN ) 0,&07
 7 !E &
'U(!+0W  &

< #- <' 4""6
&
7 !- 01"!%9 #- &60}(<76#: "*&  !E" 1"02%!QN <e# 07 <0E=
 "!+ & !-' "!E;# 0E <'0
'1 240'4 *"*&    5!+'&
* El
1.
2.
3.
4.
3

Crear un objeto Background especificando un color o una imagen.


Aadir geometra (opcional).
Proporcionar un lmite de Aplicacin o BoundingLeaf.
Aadir el objeto Background al escenario grfico.

% J4 E
'

G0240 , ?(  &@,"  &


&* @78 7%!- 0"!QU;# 0E
<0)(<" *!/'4&
0" 0"!"0)*
 2 1'7=_* ,;'0"2*-!QN )(<", "( !%'&
"!74e# 07 <'0&
0E8"&60 0!"0W 5 2 '1'7='\

 &
&* @7('! 07(*0!+&  0 54XR-25( 0<5"T#+0*<'0). "*&0
@"  <'0E='cB8 1"
<0,XR-25( 0
2%!+ 5  < &
&* @7J<"1''0"2Z%!-  "X# 07*<0\=
3 -", 
E 'WG +
_* N$  J<"&6@<" 10,<" !+ 12
I0,<B@'<" 1'0,KQ &607!-!%(*0*<8&
0E 0(*  0';<"
 5!+'&
*+  7 "!- 0!O=
+0 5 5(!  07* "  V* '&  @8<&60 0!QU " f' &0}(
0'*.  eR:*6+
(* "!+ < #- !E 0'Ng2 +J< 7(  &
&* @7294 (! 0E( <0( !% "X# 07 <'0 0W * !/'
/7  E *+=
Fragmento de Cdigo 3-6, Aadir un fondo coloreado

*qe~6g6`xhYq`~YG[XvY*qe~`|6ex6 t  I t  I t  -

t 

ztq`~Y
t YvY e` y ~qYIy `*6exX *6ex6y Y XXv6gv6gI%
t ~{v6{ `It qexex`E`y x6Iqe~Ye%
3 -", ,;7%S m 

'7 
wW* *0EU N$ ' 8<"&@<" 105"" 7!+ 12
I0<,B@'<" 1'0,K &0!:!%( 07 <""4&
0
 0)(* 
0'J<"5 5!+'&+ <&*!+' '&
&  @4<'W;#+0*<'0\=j8 4#-!% 172
I0EU  5  "2  "
2Z* 0'<0~Y|vXqXgv*q`~{jgqX`gE(* !+ &!+' "!E 1"072*-!ON <"X# 07 <'0\=\ 52Z*+0<0<"  *
80.YR-*+0}j+ '8 = "!+ 54eR%25( 0W298&0"2,(  0)(<T !Ee#% &*a!+0
6 '&*e1!+0"" <*((= R-  =
Fragmento de Cdigo 3-7, aadir un fondo geomtrico

* qe~6g6`xhYq`~YG[XvY*qe~`|6ex6g%^ IX qe~XqX~6g6`x


tq`~Y
t YvY|v``uwvY$ g~Y|veqv
*qe~YF|q6eeg$-\ qexex['gq6~{XF|6ew
XqX~6gex
ztq`~Yt YvY e` y ~qYIy `*6exXIvY*6eXx`y  eXv`|v`IYvYD y |zex`|%   t  $-
t 6Op XX t qexex`\ey x6$q`~X-
f 7 "
'" -*
 "!+ , "('!+&* "!\;#+0*<0\U*'&*  "240'8 ?"(*"!- 24% !- 0E= 6 &*`1! 07'*<*('("= R% *  '
(  &
&* @74&602,(  &
07;# 07 <0102Z%!- &0\='\  (  &
&* @7 0(!:2  
240* "!: 0'(
0!\2" <'04 ' !I% "6
* * 7[= 
%!+  020 "20'U(*0<"20'T *!"
240* ' 2 "
I0W!% *- *07
-!+5 1''0"2%!QN 5 0& `M <'"e# 0 <'0\=
6 '&*e1!+0"" <*((= R-  * 5 &* 

  M'w' $7: /(! 07(!+0&* 07* < W( 0!E


  .!%!QN <"5
%   < <'(* "!% 8 ' 
0!+8<5240 ' 2  0\=

M'*' "I7:/ E!+(*07 < 5 ; &* 8<'4#- &*a 'U/1Ech(UM/1EB(* "!% 
240* ' 2 "
I0E='_* 4+&* 8  "2. ZBR:1" 5(* 7( " (* "!% 52498<'+ "  (<"T "!

B ('N : 04 =  7


<0eR%&   , f  7**'"U 0 0"  <'J<'5!+0+ "!( !+ 4 "!E
&607
+"  *% 0 U N*&60240  XR- !E XR%08 <" 6+ "*&  7=

 ' 5 & 7 7'*


_* W7 17!+ ,K{n`W2%!% 9!Q. 0`<&  *<5 &* 
} f 7 " /=
G0205"
*?
+ * @4<, &*  )'QU'4eR%"2( "!<, ,&   } &  7 }(< "!E"a' R%0
<540".R% 0)4 ""=

f 7 "
+ "*4 * !- 0'8&607
%!:&6I0"!-=_*08&
0 %!:*&6I07!+J&
07(* "!%9"2*-!+0*0
(*"!-2 +"4'(&* #: &
!E4&60 0!0W" 5 2 '1'7( !- "X#+0*<0\=_ 1'0"2*-!QN <'"e# 0*<0

@" 0 W(<" (  & "! %!+ * ZJ<" 24ZI0<05 (! 0E( <0E=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  ) & 7 7*
*
0'<'0Wa*0eR- } &  7*,<'*#- *54&0" 0!" @  <'0,05" 5 24 '1'7(* "!% ,e# 07
<03 
*
)(* "!+ 5!%"   "!E 4 7 7*  " (!- *&* ( 0<'& <" W *0W2 "!+&
0E= ( & 07 " 2
 
(*"!-2 +,!% #%"!% &* "!102%!QN J<4# 0E <'0\=_ 102*%!ON <'4# 0E <'0<".

+! 7(!+*
 ! *<7-! 0,<5* ,6#+"!% M88<" .R% < 5a &* "
6#- I0E=b\ "2,. Z"
(&* #: &
,* ,!%'1" @4< (  &
&* @4 3",6+8#+07 <'0,+9 '&`- *0\=
* qe~Y6g6ex6|
G07
-!- M*5" 0'<'0 f +" 5&0'4&0" 0"!(
07!"<" #+'&6I0 *1! 0=
*qe~Y6g6ex6$ 6|zY~6 6g
G07
-!- M*5" 0'<'0 f +" 5&04&0" 0"!7(*'&  #- &
<0\=
*qe~Y6g6ex6| eq
$ eq6
$ eqX
Y
G07
-!- M*5" 0'<'0 f +" 5&04&0" 0"!7(*'&  #- &
<0\=
*qe~Y6g6ex6 ujq`eveE`uG6Xv6 y uwqe`vX
G07
-!- M*5" 0'<'0 f +" 5&0 , 2 174'( '&  #- &
<' E=
[  3"' "! *:!- .'
 0<W;# 07 <0W('<" " &
&* 07* "!   %!% * Z8<*2ZI0<0''=
k'2 "!- 0<)8Z 0'<'0'J<5 ,[  } &  7*
rYy x{v ee y ~{q|y 6`*6`Yx6y Yveq$I*6exy X{v`q
gve6y X
kj" '&&* 07 5 ,!-1 @78<" (  &
'&  @8<'" & " 7*5  5a 0`R% '(&* #- & < 7=
rYy x{v ee y ~{q|y 6`*6`YxeI*6exejgvey 6
kj" '&&* 07 5 ,!-1 @78<" (  &
'&  @8<'" & " 7*5  0gNg2  8(&* #- & <'0=
rYy x{vgE6 6$|7` 6|zY~6 `|
kj" '&&* 07 ,"6&0 0!"<'"`# 0 <'0\=
rYy x{vgE6 6$ $ eqX
$ eq$ `q
kj" '&&* 07 ,"6&0 0!"<'"`# 0 <'0\=
rYy x{vgve6uwv| I$q`X~YXjg6eegq~Y
kj" '&&* 07 5 1"02*:!QN <"X#+0 <'0, " *0<0j+ 8 7'(*&* #- & <'0E=
rYy x{v ujqeev6 uwqeeveE`uB6v6{ y uwqeevX
kj" '&&* 07 5 , 2 1"8<'"e# 0*<'0\=
k'2 "!- 0<,h (* &* <" <";<"5 ,[  ) & 7 7*

ALLOW_APPLICATION_BOUNDS_READ | WRITE permite leer (escribir) al


acceso a los lmites de aplicacin.
ALLOW_COLOR_READ | WRITE permite leer (escribir) al acceso a su color
ALLOW_GEOMETRY_READ | WRITE permite leer (escribir) al acceso a su
geometra de fondo
ALLOW_IMAGE_READ | WRITE permite leer (escribir) al acceso a su imagen

/7  E *
_ 0,/7*' gNg2  
E 5 * "4&
0 & 'U &0"25( 0!I+ 2 7 0'U6#+07 <'0';M 1!% 
 !- <" <<"0%!% 8 (  &6 '&  0878
*  7[=_*0," ( "!-2  8 "*(!+0'1"!% "2 <'0!
 !- !\  &
&* @E'U  "( "!: "*&* 7UM6m+0,6
0 <0
0.'!+,&
2,(*04 ' ! %* "g=_
(&* #: &
&* @78<'}/7*'; "2. Z"(*"!:2   "`  "2 <'5!% <"!- V '<'0<  
2XR%0"!% "!E XR%'&**&* @E8<"
!+'&0"!I+ <'0M(*0"!\ 0 7I0W2XR%0"!+ !"
!% <" 2 
I0\=
_* (*'&  #- &
'&  @J:N|( & <5N|2  
%   V 5J07.YR-* 0}" ( "!+ 5  2 I !\ 5!+1 @7=
F4"6
&
7 !- 01!%9 #- &60W!+ + 
 7U 0'J0".R% 0'5/"
J
52** "4&
07 0'J0".R% 0'
3"5 0W!+*#%"!%"*&  "=\I0,6+ 5.' Z,( !+ 52&a J 7(  &
'&  0*'
 42. "! 1'0EU(*0'<!QN
a "."!* %* '&* 07*J7 83"8#:"!% < ' ".'  *"!E ,!+'1 @gNg2  3"**,240  "!+
  <(**<" "
 "27 <", 0J0.YR-*+083"W   0Ng2  '=
/0!eR%"2,( 0EU
 '2*<0W &*  M W* 4#-"
+<'5  V4+ '&  0 !: 3"5  '2 * , 0'
0.YR-*I0'4240* ' 2 "
 0EU 0'4Ng2  J<5 5  V8<'"."!QN  &* ' !760".R%I0,
240* ' 2 "
I0E='ch* 8#%0"!-2 <52 XR- !7 0)( 0'<!ON 
"!&!+' "!E 0gNg2  4 0
#: &*  "2
 1"!%  <"8&0240)( !% 5 *&*  !I0'<'0 0' *1 "!%J<0*< 52 
0.YR-*I0\=/6+ W 05 52eR+0"!\!+'('*6% 72&a 0'8&
0'=ch* 52eR+0!
0" *&* @74
*
!E","  7O=
k % <0,4"6
& * "!- 01"!-9 #- &60,&074"`0.YR-* 0 '  U*"
/7  E * ,2* &60E460".R% 0  * "

<(**<" "
 "27 <"5 4#-*7
 <
  V"=_* ) 1!% 'KnX}2,%!+ W'
&
 !: 01"!%9*#: &60,&0"* 5  V43W  5 0<'0
/7  E *L=

c *  (  &
'&  @ 
 "!%* "
+<5"80.R%* 0/" 7 *7*'"* -f* 5'5/7*" 7* 7
B
' *8 |I7-)=/6+WF"  7'*\(*'<'W  ! 
W( !% 5"gNg2  Q* "2,(!%
0.'!%

(* "!+ W8&
02,( 0"!I% 2 7
 07U 0W( "!% ,"
0'N|2  J<, "(  & '&  @4O (  &
 25(!+'j( !%
# 07 <'080) . = !+ 17247 0<,B@< 10,KQ (!%*"
+ 54eR%"2,( 0<,
(  &
&* @75/"  *E*
<" &07"5 &  7*\=
 !+ 1247 0<,B@'< 1'0,KQ (!-*"
+ 54eR%2( 0<"&@2405 ]* <" !E
/7  E *7&0"240Wa R+0<)j $ :;'"%w M,( "!+ )(!+07(*0"!+&* 0E* "!E"gNg2 +<
O (  &
 "2,(!+'j( !% WT#+07*<0\=j4 &6@<" 10*,a 5280< #- & <0," 2ZI0'<'0
6+9 < "!+<~{|veqgv ~{v6v`F|q`eegE( !+ ,34 0"258
@" 0W( !-92*-! 07U3,8"`0.YR-* 0
  EB " E=\I0&
 "!- 0)( !% &*!% !"`0.YR-* 0}j $ :;%w M=
_* N$  JCEU MJW& !%' 4"`0.R%* 0/" 7 *'QU 60".R%I0F |I7-;74%Y M8M
a & <"`0.YR-* 0}"  *7Ea' R%0<}F |I7-;7%Y M"U "4 0!+<'7= k
%
' !% 3"5a .!\2980".R%I0F | 7-;7*%Y M"U 
 ] '<" !QN 4 W(+0E='
0.YR-*I0F $ -;'-Y M4
 ] '<5 5!+ "2 <"4  6+ 1!+9*#- &
 5gN| ' ,7=
60".R%I0/7  E  7
  &
&* 07 &0"20W 0'4  2 +J< 7(  &
&* @(* "!% 60".R%I0
 & 7 7'*, 5N$ ' n'n*=' 2 2800.YR-*I07*
E*'*/(*<5 * "!  W( !+ 0%!+0
(!+0(*@  084 )(!+01"!% "2 7=/0!7XR-25( 07U'('<'W * "! 
)(* "!+ 5 0'
&0"25( 0"!I+ "2 7I0'= .* "!$  3*W*
7
<0,/7*" 7* 7"46 )(!+017!+ "2 &0240
" "|-  *7/"
7 *'"<, , 
Va & 3" 5  V 0W #-  M* 7JI0<0 0
0.YR-*I0'8<"
2 <'0  !I% g=
Fragmento de Cdigo 3-8, Aadir un BoundingLeaf al ViewPlatform para un lmite
'Aplica siempre'

rYy xG~Y|vXqXgv ~{v`v`F|q6` y uGe v7ey rYv6Yv

t *6exy 
Yveq
X`eXx6y X{veqX[v{D`eXx6y XYveq|$%
zt  q g6Iuwveujv| X q 6$uwve6u[v{D' q |6$uve6ujv| g-
te qX 6$uwv`6uBt qexex6E`y x6$``x6y vXqg%
te qX 6$uwv`6uBt ~u`y v6g%
t y ue v7ey r`t ev Ey v{jy X q 6IuGg%t {vI' qY g6$uwveujv| Ie q g`Iuwv``uw%
t
gq6~YXF|6ew~6Yv6{ e
hXv{Dgq6~YXF|``eg%
 t
 t
  t*qe~6g6`xhYq`~YG[XvY*qe~`|6ex6 t  I t  I t  -
e tDq`~Y
t {vY e` y ~q$y `*6ex6y X6Yv`q|$eYxy Yv`q%
t}~{v `It qexex`E`y x6Iqe~Ye%

*5[ '
)\7  7*'
*_ &*  )"  7"*?
- 
<", &   }**O=_ )7 1'!+ ,KYn`5!%7(!+ % "9!:.*0"
<&*  8<"]60""
< *17_*' *#O=

&0 6-!-*&6I0!" (* "!%924%!+0'J<}/7*"


E*'*7& !% 5Ng2  (* !- ,"* `#%"!+ E=
0%! 0,&07
%!Q*&6I0!/(*"!-2  5 (*'&  #- &
'&  @8<'5gNg2  ( "!% 60".R% 0/7*"
E*'*O=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  )" 7 *7
*
0'<'0}" 7 *7*'< #- W" 5!%1" @E8<5N|2  835('*'<*!\!%*#%!+7 &* < W(*0"!
0%! 0' 0'<0'( !- <" #:  !E!%1 @78<5 #- *&* 7U
0W* W!+1 @7(!+0'1"!% 2 < 7=
* ``xy 
{veq||
G07
-!- M*5" 0'<'0/7*" *7* 7&60780.R%I0,6#%"!% 7=
*``xy 
{veq|+ 6`Yxewgve6y 6Y
G07
-!- M*5" 0'<'0/7*" *7* 7&607 5!+1 @74<'5N|2  J(*'&  #- & < E=
k'2 "!- 0<')4Z* 0'<'0'J<5 [  }/7*" *7*'*
*6exe`v v`6y eg
w'&*(!% 5 5!+'1" @8<"5gNg2  J<'6%)E"  *7
rYy xGv vey 6e 6`xXwgve6y 6
kj" '&
&  0* 5 5!%1 @E8<5Ng2  J< )
0<0D/7 " 7
       '       

  3"' "!E '8+74% \(<,!%*#+!+*&* "!&* " 3" !"0%!+007.YR%I05&0"240,<'  0'


[
<5* "!- 0\=F!: 2!+0EU
<".!ON 240'a "."!Q
0'8< <'0,&*7 <"3"&
&  " 3' "!
&* 
<&0"!% V @74<'"  d8< &
"*<" "
+<5 7*"8+'4+ Q=_*
   <'< &
 < %J<, 7*"8+"'4+ 7 *&  
M**"+ 7U' f 7 7
\U
 OU'F+7 '8 "U;7%Y MU 7 IUEhUM8F+*`+-8 7=
_* 4 (  &
&* @7( "!% "& "25(
0Dw "Ow EU
@" 0 95  2  <'0)(
07!\'*6:!+
 2 1" '&  @7"=0"!7XR%"25( 07U'  (  &
'&  @(
0<!ON  *!  "!- 0'J0.R%I0'!+&0" &6+ ". =
B < 5" 0<6+0J0.R%I0'( 0<"!QN 4%"!E  1fJ+ ? I0W # 0!:24 % 05  2 &
* <0,4"
0.YR-*I0,<"<" * 0J<",* "!- 0\= [ "*<'0,"
** "!- 0W!+&
01'W'40.YR-*I0EU
*W(<"520%!% "!
 56# 0!-2 &* @E8<5 0'J< I0'J<5  !- 0E=
%!+  7(  &
&* @7(
0<"!QN  " 2 '&7* "! " 17f';  " 0!7&
 &* <'0)( !+ W"J07.R%* 0<

&
* !- 01"!%9*#- &60,&0"20(*0 &* @74 8&0'0!+<'7 '< J<"
2 <'0  !I%* "g=`>0%!+
(  &
&* @7( 0'<!QN , " 2 '&
* "!7 " 1"" 56# 07!-2 &* @7(*'&* #- & <&02,(*0"!  "2 
I053"
( 0'<!QN &60E
%! 0" !E&0"25(
07!I "2 
I05 (  & <'0,   !- 0J07.YR-*I0'=
_  W !%&  6<'W4Z*+0<0J<"W * 0'J<)cj "!- 0<", 7 *"8+4%
8%"'4+ * (!+&*  &
0"2,f,( "!% 4 0'<'0 0J07.YR%I0'4&602,( 0E 7+
<5 &
 !- 01!%9*#- &0E='\I0'4 &*  M*"Ww7U;'-YMU "+7 EU  &=
p|qrYq
t q6
t ?FOp|ve~6XvX$Yv6IqXq6g
w'& "(*"!% &
25(
0}
Qw <'<"+0.R%I0<" &7* "!- 01!%9 #: &0E=
rYy x{v$"{v6I"qq6 p$qrYq
t q6X
t ?FOpgv`~ Y{v6I"qqe
kj" '&&* 07* "6&
"2(*0}* "Ow , 0&* <'0,&074 07.YR%I0,< & " "!- 01!+9*#- &0E=

  
        

  & $     &      +   2    $             /  -    &    /  

_* ,+"!+ '&&* @EJM  " 2 '&  @8*'( '&  #- &


4&0780.YR-* 0', O=_ &*  
 7 .&*  , .*%!% &6 ,3"W('! 07(*0"!+&* 07* "
2'&
7 *240}( !+ 5 *&   !
&@< 10,3",20<" #- 3"*,"6
&
* "!- 0,1"!%9*#- &60\=_* &   } OUM8**
< &
*<" 7+'U

0E87 &
8 &@'< 1'0,<'"
* !- 0,3W(!+0E(
07!+&* 07* 5 
240'< #: &
&* 07 (* "!+ 5 0;1!+9*#- &0'TM 0J
0 <0'J< ' "! 
0 ' !I-* "g=
*(!+0( @  0<60.YR% 0 7"4 &7 !- 01!+9 #- &0,240'< #- & "!" (! 0E( 0

&
* !- 01"!%9*#- &60EU
0W 0J0.YR%I0'43,a MJ<"
%! 0<"Z"U*"!%( ,  " 1*0
6QNg2 0=cB6QNg2 0}(< "!\* W('  &* @78< '&  U20* ' 2 
 0<"
!+ I@E'U
 &0"  * @78<'0".R%I0'U*(* 
0,<"e% 2,( 07U*  1f80%! 05* *7 07U*05" &
0"2,.' * &* @74<'
6 0=_*08&
"2.' 0'(!+0'<&  <0' *&  
M*  '<" &
&  @8<'0.YR-* 0'8 '
&
" !: 01!+9*#- &60EU
 "  2 '&* @8<"0.R%*+0'U &
"2.' 0<" %!- .' I0'J<5 0'J0.R%* 0J<"*&
" !- 01!+9*#- &0EU
!+'0"! <"* &* @78<5 0'J0".XR%I0'J<'"6 &
* "!- 017!+9*#- &60EU
0W &
0"2,.' * &* @EJ<"I0''=
_* ( 0 .'   <' <'J @" 0,6+9  2  <' ( 0!E 4&
"( &* < <"J<"5 0';0.R%* 0J<"

&
* !- 0';1!%9*#- &0E=
 7*';)/*' 
0240W"4&6072,( 0!I "2 
I0 6a *  0"! "87 &

%!%546QNg2, 0M*  '&&* @E'U
G
6&07
 <!% "20;I0'<  8&602.* '&  0(*0 .' 8"
%!+,:Ng2' 0';M &
&  0
( 0'<!%20'J0.  *"!"I0'< 4 8 (  &
&* 07 8<'W 0J0.YR%I0', O=_
 1 "
+
 ". 52%!%  " 17' 8<, (*0 .'   < <"J<"}"* 7QU*   
<'05 0( 0 .' 
6QNg2 0a '&*  ". XR%07U M 0'(
0'* . 8&
2,.' 0'a &* , <""!+&a E=
_* 4+ ".' W 0W   I0< 4 8&0"2,.' * &* 0E '( 0'* . 'U

@ 0W 249J 2,(  "
6QNg2 05!%  &
2,.' 0'=e[ 1"* 8&602,. '&  07*8<,:Ng2' 0';M4&
2.' 0'

@" 0-  7J 7% <0,7"
 0!Q
05(&N #- &60E  J 5  6 4&0"20,O(*'&N #- &
J<'
  (  &
&* @7 =
Estmulo
(razn
para el

Objeto
TransformGroup
(los objetos visuales

del
Geometry
(los objetos

cambio
Scene Graph
View
(aadir, eliminar (cambiar la

cambio)

cambian la orientacin
o la localizacin)

visuales
o intercambiar
cambian la
objetos)
forma o el color)

localizacin o
direccin de la
vista)

especfico de la
aplicacin

navegacin

especfico de la
aplicacin

usuario

interaccin

colisiones

Los objetos
Los objetos visuales
visuales
cambian su orientacin cambian su
o posicin
apariencia con la
colisin

Los objetos
visuales
La vista cambia
desaparecen con con la colisin
la colisin

tiempo

animacin

animacin

Posicin de
cartelera
la Vista

animacin

nivel de detalles especfico de la


(LOD)
aplicacin

animacin
especfico de la
aplicacin

*_ &
0'
 -'!%  'U &0240W 0'89!:.0" 'U
%   V ' 4-!+27
<" &
7% <' '<<
102%!QN W(* "!% ,!%7(!%*"
+ "!"<4# 0!:2  1'!% I0'< 4 %!-&`:!% <",!% "2 'Ua*0`R% ;M
%! 07*&0\=cB    !Q *-  *
!E"(*0"gN 1'07 0+*? %'!+ <0, *1' !"<", 1''0"2%!QN E=
\  Z'&* &
  1* T '&
44!% #%"!- <" &6020W  "(!+0*?' 2 '&  @4& !I% "!% E=\I0,
&* "!II0,'(*&* " 2
 &* 7
<0*5 * 54&0"25(*0"!I 2 I0}( !+ 0!- 7 "!
"
 029*% &
2
 ,*( 0N 107
0+*? %!% '<0)a &* ,"6(*'&`+ '<0!/(* "!% 3"
@" 0 4 '
"X#:!+"
 <'5 (!I#- &*  *? %'!+ '<' E=/6+&072,( 0!I+ 2 7 0,<'0"!- "
+ &  @8 ,  "2
&0"25( 0"!I+ "2 7I0,&
"!   !% E=
\  (!+0? 2 &* @E84 #%&6%  &*  <0"60".R%I0, ,!%(!%*"
+ "!\(*0"!E   ? %'!% +9
 eR% 
0)( !% 35 ( "!    <"  <"  J<"60".R%I0  * " *0  ";#+9'&   2
 
< %  1"' .' '= "!+ ,XR-2,( 0<"69"!-.0"U 66( '&`% <0"!E 9 78 " eR% <'0,35 
!+ "2 J
078<" #- &*  J<<" 6- 
1' !QU'
0W2!%'&5 5(" 1 6+ "!\!+&!+
0'8<'5220!- M
<& 9" &* 0W(* "!% ,!%7(!-*"
+ "!I0<'  4a0`R% J<"9"!-.*0g='\  Z& &
' 9
!+'&02*<' '< W( !% &* " 3" !7 (  &
'&  @43"W!+'3" !% 4 ' * "  V "!"07.YR-* 08&02,( XR%0
 <" 6 7 &* 7= k 42. "! 107U 6"6( '&`+ <'0!(<" 7(!%0*?' 2 !+  5 &
!I+" "!+ 7U*
&* "!I <" 6+ "*&  61"!% '<'0<"5(!+0#-*<" <' '<<" ( 0"gN 1'0*0+ ? -'!% 5(*0'<!QN  !< '&`+ <0
( 0!7(*'&6 <'0!L=
&0"2,(
0!I+ "2  0<"W "`<<    _ w7- "*,"*  7(  &
&* @7!+ &* 07* < E= G0E
_ hU 0J0.YR%I0'T  *  2
 &6072,( XR+0'J
07!%(!+ % <0(*0"!\2f' % ( J0.YR-* 0'
' * " T * "!-  <0W 0' " J<'< "  <', "a"N
, 02,.!%=_ 5!%"(!%
7+ &* @EJ<"
0.YR-*I0 '  "&6072 07!\ 6<'<"*+   
5* &*  <0,(*'&6 <'0!7 95 eR+0'=_*

+! 7(!+*
 &* @E4&60E249' *"6<'< "   5 * &  "*<'0,"6(*'&`+ <'0!7 952,
M
&
!+& E=&0"2,(
0!I+ "2 7I0)_ & 2,.  " I029% &
"247%7-!+5 !+7(!+*
 '&  @7
<60".R% 0W.  9*<0' , <  7 &*  "6(*&`+ <0"!O=
_ 08&
0"25( 0!I "2 7I0'8<'& !I+ !% M8<"5 6<<*%   &60!-!+(*0*<'74 &   
*?
+ <" < ;<"<")"*' 73"*5 2,( "247+ 6 8 (  & '&* 0*J&072" =
kF0E
( 0 .' J0%!+0'8&02,( 0!I+ "2  0'8'( '&*   V <'0';M;  !- 0J<"  0J W(<; !7
 )7 1!+ 4Kn*=/0!7XR-25( 07Ua *M;  !- 8&* 
]
 8
7" 3",2 (' "*
%!+  `#+0!-2 &* @7"!+('*+  ,20  2 "
I0'8<"
!+ I@E='j0"!:2 " 2
 W
%!+  `#+0!-2 &* @74<'5 4 '   &
2.' W(*0"!7"&6025(
0!I+ "2 
I0<"
!% * @7,( !+ &
"2,. "!
 4 '  !+'( , W'  '&
&  @78<" !+ * @"=
.*
"!$  4+ 2,. Z4&0"20W 0'8&6025(
07!I "2 
I0'(<"4*&
< ! *7=/0!eR%"2,( 0EU
 0'240* ' 2 
I0J<" !+  @40W ('  &* 0E 8< '&* ('<""  "!  W( !% &
2,.' !
 4 '  E=F!+( ,  240* ' 2 "
I0<5 4 '  7U( 0'<!QN ;+!\  1" "!0-! 0
&0"25( 0"!I+ "2 7I0'8&020W & "!I " !+ U 05* *"6<'<*+ "  =e# 0"!I-'* <" 2+7U &
<
&0"25( 0"!I+ "2 7I0 ,'( '&* #- & <8#+0!-2 
7(* "!+ '<' E=
'  4 7
%+
"g
"+
4
G0240W < % &* @74"
%!%  2 '&  @5 
 !% '&
&  @*
'< 46+-
 0"!-  9
. + +5.' 7'U* 3Na M'4XR-"2,( 0)(* "!% &  !- #- & "!6+ < % &* @7= k
'  !- 0
* 1" ,"',(! 0'1!% "2 <0*< 5('! 07( 07!+&  0 54&6025( 0!I 2 "
I0EU 8 '   
240* "!+9!+'(6+  ,* *7 0J<"` &* <0M6m+0W!+  @"='
240  2 "
I0,<,
(  #+0!-2 <5 4 '  4"* , !+ '&&* @E( 0!%34"
!+ + <0<" !-&6I0<5"*
'&&* @78<"
* "!- 0\=
k42. "!+1'07U*0%!+ 8&
0 ( 0'<!QN 8& "2.' "!&0"20)!+'  <0,<
240* ' 2 "
I0,<'5 W( + *#+0"!-2 <5 8 '  7U ( 0!7XR-2,( 0EU &02,(*0"!I+ "2 7I0'J<
&
!I+ !% 0}_ j=_ 0'4&
2,. 08&
** <'08&
0240W!%'  '<0,< 240* ' 2  0<5
(  #+0!-2 <4 '  07  <" !+&6 2
 &
" * <0'(*0"!E ** "!- 0M(*0"!\ 0 +0
0E
 24 '&* 07*=
"g
-

'7
45 ''* 

*_ W7 17!+ "K{nJ2+ (&* "  V '&* 0*;<"5 &* 


} E& !+' <" J74X
<'
 ,[=b/ "2,. Z780E,(
0'* .  8&* 
8'( '&* "  V* < J<}"* <*#-  < 

( 0!7   "!- 0';M4+94@ 0W  2  <' ( 0!E 5 24 '1" '&* @4<*(!%0'1!% "2 '<0!O=\ 
24@'< 0<"e-
I0!- "& '.'!+&
<" 5* <5 8&   J<"5 ) 1"'!% 8"K{n=\ &
"(N -' 0
&*.!+5 8&   J
02.!% '<' 'U*"` 1 "
 &
("N %' 0,& '.!-" !+ 0\=
2  7      2

   

0240 , ?(  &@,"  &


&* @78 7%!- 0"!QU 8&   ,"*' 7" 5  "2,& a 
G
(  &
&* 07 J *  7PM4<,2,& a T#+0"!:2 '='\ 2,(
0!I 7+
+"*<"!E 
&0 * <"!% '&  0J<"8#:*&  0 2 
 0M(!+01"!% 2 &* @78<, 8&   ='\6+  '&&* @7
*?'(  & 5 &* 
}* 7OU
0#-!+'&5" 5!%'&
 W(* "!% W(!+0'1!+ 2 "!7&   8<
&0"25( 0"!I+ "2 7I0'(*"!  0   V* < 'U
M2%!% W*  (  & '&* @7J<,XR-25( 0,35*
* &* 
} O=

-  E*5[ '
)/"' 

\  &
&* @4*?(  & &@"20, &*!- .' !\* &* *<&6072,( 0!I+ "2 "
 0)(*! 
07*   V* <'0E=
B  .20'83",a *M4&*  J<&
02,( 0!I+ 2 7 03W(*0<"20' * !O=*k 4"2.* ! 1'0EU

"X !7&@"20,& !%' "!\* ,&   }"* 7 (!%*<"!%240'J&


0240#-" &* 0 E=/0"!7
07U
 &* *0  0)( " * !\ &   &6072,( 0!I+ 2 "
 07U'( 0'<7!QN 83"!%"!E '!E
 &
&* @7=_* 8&   4 &*!-  84+ 
'&
&  @78 ,** ""  1' 
 \=
4 a7 4)/ 
cB* &* *<&6025( 0!I+ "2 "
 0)(*"!  0   V* <'0) 2,( 2+ 5 0'2Z*I0<'0'J<
  &  "  V '&* @7;Mege~ve{ |y u` G<"5 &    ".*%!% &6 } L=*/0!"'('* 07U
&* 
<&
02,( 0!  2 
I0)(*"! 
0E "  V <'0EU+ 2,.' Z"J- "  2 04&07
%!:&` 0"!"M
 "2. Z( 0'<!ON  !0-! 02Z*+0<0=
_* ,2 M 0!QN <, 08&025( 0!I+ 2 7 04 &6% !%940.!+540".R%I0,<'"6*&* "!- 017!+9 #: &0
(* "!+ , *#+&6 ! "6&02,( 0! + 2 +0E='60".R%I00.'!+"63*, '&`-f 54&0"25( 0!I+ 2 7 0
!+ #%"!- <'0,&020,60".R-I0<"6&
"2.' 0\=\8 %!% Z8< 0.R%I07U'40".R%I0'U3"
&0"25( 0"!I+ "2 7I0, *#%'&` , "
2 <'0  !I% "g=`[ 3*,(*0 .  !E"
&0"25( 0"!I+ "2 7I0,3W*0+"*1 5807.YR-*I0<"&
2,. 07U 52 *M 0!QN 5 0% """=
&0"2,(
0!I+ "2  0)&  + ,* 5!%*#+"!%*&   40.R%I0 
\<&
2,.' 0}( "!% W( 0<'!
!+   V* !\ 0'J&
"2.' 0'J<,&0"2,(*0"!I+ "2  0\=
kw5('<5* "!"&607
-!-&6 0"!/(* "!%
  &
&* 0 "!E 5!+*#%!-"*&* <"`0.YR-*I0,<& "2.' 0\=
kG  0
5a &
U 0-!+0W2ZI0'<0<5
&* 
<&
02,( 0!  2 
I0)(*"! 
0E "  V <'0<".  2 '&
* "!7 5 # 0"!:2 '&  @"=j
&** " 3 !7& 
0EU 5!+ #%"!% &*  5a &
,""
2402
 0,43" &07*6-!-
M*,

&
* !- 01"!%9*#- &60EU 3",8*(!- 2!& 9" &* 0<",&602,( 0!I+ "2 "
 0\=
 2Z* 0<'0<5  &* "  V* '&  @8 ,6 *0&
&*  <0" & !- 01!%9 #: &0,3&0E% "5
&* 
<&
02,( 0!  2 
I0
4 *" 4  0\=/6 52Z 0<0<5  &* '&  @4!+'( 07  ". 
<*" '&&* 07* "!"6* "
 0<<" ( "! 05 &  *( "!% &0"25( 0!I "2 7I0M4  &
&* 07* "!E
&0*<" &  @  &* 6<'5 T  !- .' J<, '<0,<"&602,(
0!I+ "2 
I0\=6<" ( ! 0 
(&* #: &
&0280W"80.R%IU
0 7> G7  % EU
0W* &02,. * '&  @78<0.YR-*I0'
7S "GE
7 % 7=
 2Z* 0<'0,e|e~{vX{ $y ue YG 5  *0&
& *<0,0&*'!-!% "
 0<< (* "!+0
(&* #: &
<'0)(* "!% "&6072,( 0!I 2 "
I0\=\ 52Z* 0'<'0,!+'(*0  ". <'5!%( 07 <"!7 "
* *7 0E=*B0"20
W('<4&0'<" #- &
"!E2*&a 0'4  0'8"J
@ 00.R% 0
7S "GE
7 % 7 ( 0"!EXR-2,( 0EU6  "!- 8 '&&* 07*J< '&* <'0)( 0<"!ON 6 9"!
&0< #- &
<'04X
 7> `z
7d 3 7
IU 6I05 &*  M*, <
&
0'< #: & &* @78<"
* *7 0E=' 24ZI0'<'05eg`~{v{ $y uGX Y[!%'( 07 < "6QNg2 07U' 0!-2  27+,240<" #- &
" <'0

"`0.YR-* 0<&
"2. 0EU
M'U&   <'0,4 "('! 07( <'0EU!+**  "*<05"`< ( "!+0\=e[. XR%0
 *"20" 5!%'&
 W(* !+  &!- .' !E* &* 
<"&602,(*0!I "2 "
I0}( ! 
07* "  V < 7l
1. escribir (al menos uno) constructor
almacenar una referencia al objeto del cambio.
X`e y ~/rYy x[y `y $y q6 y Yq|y `eg
2. sobreescribir
especificar el criterio de diparo inicial
X`e y ~/rYy x[e|X~ve Iy u` Y|
3. sobreescribir
decodificar la condicin de disparo
actuar de acuerdo a la condicin de disparo
resetar el disparo si es apropiado

*_ ,!-& *  7+"!- 0"!E2,%!+ 5 0'(  0.9 &0(* "!+ &*!%' "!E" &*  <"
&0"25( 0"!I+ "2 7I0)(!  0E "  V* < E=_ 08&
0"25( 0!I "2  0'8&02,( XR%0(*0'<!QN 7!%'3"!- !
29('! 0'1!% "2 '&* @743"W < &*!-  7 5!+& *+ 7='  
0<'W'40.YR-*I0D 7
0%! 0}(!+0. 2 M8 <  &*
 7"*  &
&* @E(*0 "!- 0!O="! 05 +'U
"!%240'4
!+'&
 W(* "!% &*!% !"` 1 "
 ,XR-25( 0<&* 
} L=
3 -", 5h ' 5"*' 7\/
7 *F
5 w ,' 7* 7
 "!+ ,XR-2,( 0<&02,(*0"!I+ "2  0)(*"! 
0E* "  V* <0EU &*  , 2,( 2"
+ "!%95
&0"25( 0"!I+ "2 7I0 *&*   0)(* "!% 5a '&!3*,  10,1 !+!+'(+  )('  &* 07*J<"
 '&* <'0\=
 "!+ & !-' "!"<" &*a &   7U
I0'<0W 03W&
 + 20'J!%*#+"!%*&   ,"
%*`+-8 " 60.YR-*I0<& "2,. 0W( "!% ' &   UM* 4  "!- . &607
9 1 0E='F!%'( , 5* )('  &* @E8< '&  5 4 * "!- .' <'"697
17' 0
520< #: &
U
M
"69
17 0<5 4#-
 <'"F+7 6 7-8 78

" '&
&  0  "e * " 0!<"9" 1' 0\= G07240
"6&0"2,(*0"!I% 2 +0 '&6-* !+9
0.'!%540".R%I0,F+7 6 7-J+"U*3' 9* " <'0
! 0 '<'0) 0,(!+0.' "2 E=
 "!+ & !-' "!+ &* 
) 0*W*'&
  W < 52983"5 0'T-!+ 1!%< %

7 &* " 83" 5  6+ '! @E4 5!+'&
 El*"4&60E
%!-&6 0"!QU* 2Z*+0<0,y `y Iy q6 y {q$y 6eg'M4
2Z* 0'<0,ege~{vX{ $y u` Y6=6&607
%!-&6 0"!E  24 '&
* "!+95 5!+*#%"!%"*&  , 60".XR%I0
%*`+Q8 "= 24Z* 0'<'05y ey |y q y {q$y 6eg
" &&* 07 "`< ( ! 0W  &* "
7S '4z
7 3  :UMJ"9" 1' 0<5!+0 '&  @74 ,&"! 0\= B0240 52 &* 0*@ 7+'U "
6QNg2 0W( !% 5"4&6072(*0!I "2 "
I0 (&* #: & &0240W"80.R%* U
0 7> G7  % E"=

@240
@" 0Wa M 5(*0' .' &0 <" &  @8<"<" ( !+0EU "
2ZI0<05e|e~vX{ |y uGe  0W
G
< &0'< #- & E=\( 0 . W( 0 !- 0!-2"
+<
&0<" #- &
!7 I0,<W('  &* @7J<" '& 
(* "!+ <*+"!-2  !73"Z4+'&* 7U
0,&0"2.' * '&* @78<+&* 'U
 W(' 
@E=
 2Z* 0<'0,e|e~{vX{ $y ue YG "25(!+5 &*!%27 W 8  "!- ". <"9"*1 0EU*
 0*&
 0
*
)(* "!+ , eR:  "!7"`0.YR-* 0j+*6 -8 7=
f' + 240-!+ . XR%0<', W2Z* 0'<'0,
!+   !76<" (* "!+0E='F XR-25( 07U*6< ( ! 0* 2,('!+*5!% + , 5*
( 
'&  @78<"4+&* E=_ 04&0"2,(*0"!I% 2 +0('*'<'78&
2.' "!7"6* 
I0,<'<" (* "!+07
"e- 2,( 0)(* "!% &
"2.' "!7&0"2,(*0"!I% 2 +0 0%!% 5!+ *V*@E( !- 4+"!E3< &
0< #- & "!"
* *7 0<<" (* !+0'U*0W*0
" '&&* 07* "!0%! 0,< (* "!+0)(* "!+ &
02,( 0!  2 
I0J<"5

@" 8 V=
 !+ 1247 0<,B@'< 1'0"K{n (!-*"
+ 5 &* 
5 ' 7" 
k 2,(  6"a * ' 0"!$('("= R% *  /3" 5 2,( 2+ '&* @4<5 &   <
&0"25( 0"!I+ "2 7I0)(!  0E "  V* < E=_* J*"
+ &* 4y uG6 0E*'&
 "!- (* !% 6+
&* 
E=p|qXrYqt qY\It vrYv{ '&  "!- W(* "!% 5 5 
 !% '&
&  @4&07"e '&* <0\=
p|qrYq
t Y$y t v6euwv`|qYIy [*&
!- W(* "!+ <&
0'< #: & !7 7> 'G7* + M( 0"!\ 0 "
 0
*&  !- 4  !I%  247
 )( "!% &
*&* " 3" !&* ' <"&6025( 0!I 2 "
I0
(*"! 
07*   V* <'0\=6b/ "2,. Z8
07*'&
* !-  J "
+ &* 4y uX6 "
07!-2  J<"X
 ,[=
Fragmento de Cdigo 4-1, Clase SimpleBehavior de SimpleBehaviorApp.java

ty uG`p$qXrYqt qY\It vrYv{It O


ty uG`p$qXrYqt {$y t E eXuwvgq$y 6
zt
t  y uGe v
vqrXy ` `Ggv6xev6gqy Y vgXgqYgvexB~{`v
t

t
teee y ~F~Y qX{ y u` v*vYqrey 6 ewvs{v6xX `e v`
t
eee y ~~ qX{ y uGe v
v6XqrXy 66vXsgv6xe*v`Xqrey 6g
 t
 t
X y rqvgqYg6$uwwg6Xgq6|evYg 
  t
e t X y rqvgqYg6$uwzgq$y 6[v{WgqY6$uz6g-
t eIy rqvGxe6`e vGq6X` vG  t 
zt

t
t
t

 
~Ygv`qv

y u` v
*v6qrey 6Q
{v6*WOpgv`~Y~YqYev
y uGe v*v6qXrXy 6$gqYg6$uwjg6XFgq6gev |
$ey et gq`|XvX *wgqgev*w

 t

 *y `y |y q` y YvjIYv v6XqrXy 6

 t
 t
 t
e t
zt
X t
t
` t
t
 t

 {v
y ey $y qO/qv6ew~6Xx6y $y 

 
~q6 vXxFjv6vqXry 6
v`~ujvXw y rv

eee y ~/rY6y xhy ey Iy q y {v6||


 6{v y `y |y q6Lq6vew~`Xx6y $y 6
|ey et q6v6XR ?je$vP
@4q6veR ?F 4
@ E Y
r v6Y|Yv E r v6 t
{qXrqGz6Jv6wq6eeg6e$y qYgv$y u` Fe~{~YXg
eee y ~/rY6y xhX|e~ve{ $y u` Y E `eujv6gqX|y w~Y$y v$y qe|
 6x`FFq y ve~veYq` y gve6{vjg$y u` {
q6X6 ;
v v  t
ggqYIy 6t g (7gq6 ve%
gq`|evg wt Yvgq6Yg`Iu$ggq$y 6%
$ey et q6v6`1 ?je$Xv{P
@q6v`eR ?j @4 E r{v{|w v E rYv{It

E (B` F
E

 E  $%

 
~q6 vXxh

 t
zt
zt
zt
zezt
E ( B6 JE  E I%
z t
zt
z t  v6xGY~ qX{ y uGX v vqrXy 6
\ &* 

@" 0<"2,%!+ 5 W(!+017!+ 24 '&* @7.9 &
W '&
* !- 5( "!% ' 
&0"25( 0"!I+ "2 7I0 *&*   0E= kjW(*<52eR+0!% "!QU'(
07!eR%"2( 0EU
*W( 0'<"!QNg "8* &
&  0 !7
9 1 0M6m%0,"6eR%<'5!+0+ '&  @(*0"!\2Z 0<0';<"5 &*  E=_ &*  W( 0<"!QN  '<'29
(*"! 
07*   V* !+
&
02ZI0'<0)(* "!% 
" '&&* 07* "!E"*  '&* '( '&N #- & EU
0,&0YR:"I0<"
 '&* 'U* , 83"5!+(*07 <"!O=
%!+ 52XR%0"!- <" #:  % * <, &   )(
0<"!QN W(!%  !E 
0".!+& "!+1 <", 8  "!- . <"
9 1 07U" &* 
 '&`:* "U*e * " 0!\(* "!+ ,"69 1 0)( 0<"!QN &!+'&
"!" N|2  4 &* *
0
"*3", 0T  " 0"!-J<oE= o C
 "JI0<'0W 0W*& 
!- 0\=e[3 2,(!+0". ".' 7U 
( 0 .' 3" 4  !- ".' 1'7*"!%5* 
0.'!+'& !+1 M8&
 *5* *?&7( &* @74J% 2,( 0
<eR%'&**&* @E=
G 
';WF + 4E4 3 - ' 7h   7

F 0';%!+( 
0'8<'5 5!+'&
*+ W( !% &*!+' "!\* ,&* 
5."a ' 0!\(!  07* "  V* <' 7U 0
<'04"!-!+0"!%298&0"2," J
07l

olvidarse de seleccionar y resetear el disparo del comportamiento, y


no volver de los mtodos de la clase Behavior.

.
 2
 7U
*
0 *" &
&* 07* "`< ( "!+0W  &* "64 24ZI0'<'05y Xy $y q y qIy 6eg-U*
&0"25( 0"!I+ "2 7I0)'*&  !%9,6 0'&
'<0\=ch(*0'&
0527 0'J0.
 0,83*,6< ( "!+0
<".*" '&&* 07* "! *<") *05" 2Z* 0'<'05X$X~ve{ Iy uGe {g` <'* W'
&0"25( 0"!I+ "2 7I0W!%(*% <0\=
G0240,6+0J<02Z*+0'<'0 y `y |y q6 y YqY$y 6eg'M4ege~{ve Iy u` YgIE
07  2 <'0'( 0!"
  "24   hU <.*7; 0 "!/( !+ )( "!:2 % !3"*&
0
% 'f*,"
!+ <!- V* <0E=/0!
eR%"2( 0EU
6
<*' 5"8eR%"25( 0)(0EV 7U "69
17 0M4"+7 6 7-8 7,*&
*  "
'&`- "  V* "! 
W(!- @< &
"27 E=
kG *%!+0,&60725(
07!I "2 
I0W 2,( 2+ 6+
&0"25( 0"!I+ "2 7I0 8<"a  "!E;-a'!+ <EU' 0 5!+7
<"!- V "!%9W* < 529=
b/ 2.' Z7'Ua M
* 4# 0!:2 ,2,&*a*0W2eR+07!\(* "!+ &
0 *1 !7 %(
0,<&
02,( 0!I+ 2 7 0E=
j
E"*5h ' 5" ' 7
F*&07
%!+ "!0, &*!: . !E &*  W"*  (! 07( '<' )( !+ )%!%  7(  &
&* @748"
(!- *& ( 0W(* "!%  & !- . !E(!+0'1"!% "2   7S 
 !- &6% *0\=\  &
&* @74&*'.'!%5 0'
(!+0".' "2 J<W('! 0'1!% "2 '&  @47  < &
&  @8<0.YR-* 0"*' 7 , 0'(! 01"!- 2 =
*(!: 2!/( 
0W 2(  & "6 
17!% "!Q 0'J<3*,
&
" !: 0,1"!%9*#- &60Wa* &
5(!+0  * 0*
(* "!+ ," "*' 7O=0"!7XR-2,( 07U'( !+ W  "!\ &* 
5 ' 7/ <'5  &
&* @
+"!- 0!"<"".Wa* ."!E"4F+*6 -8 78" &7 !- 01!%9 #: &0
0.'!%"`0.YR-* 0,
! 0 !O=*&a*08&
0"25( 0!I "2  0'J
@" 0)&   ""f" &6007.YR-*I0,j+ `+-8 7"
 42. !+1'07U 0'!+'3*!- 2 "
I0';<"54
& " !: 01"!%9*#- &60)( !% 5* &025(
0!I+ "2 
I0
<(**<'78<5  (  & '&* @7;M8<*(!+0( 0,&025( 0!I 2 "
I0M,(
0<"!ON "8*!\29
&0"25( eR+0=
iw ". *<05 . &* <'056
0( 0!I )(* "!+ W8&
02,( 0!  2 
I07U  <". ]* < !E
eR%"2( !"<", &     &
* "!- 01"!%9*#- &0\=
k; "!E"* W(* "!I <5*&* "!- 017!+9 #: &0
' *07U'
0Wa *M;# 0!-2 <')(
0<'!E &    V* !\'4&02,( 0!I 2 "
I0\=5a&a 0EU"80.R%I0

 "* 73"*W 0,(* "!  <'W4 &7* "!- 017!+9 #Q &0 &0 "!I% !+9.* '*'!% M8
"!%9
"  2 <0, 5(!+@? 2 5!+'&0 '&
&  @"=
 f % 280)(* 
0}( "!%  ] < !&02,(*0"!  "2 
 0,(!+07(*0"!+&* 07* "!\ 0'Ng2  (* !% "
&0"25( 0"!I+ "2 7I0\= !% W2XR%0"!% "!E  #- &  "*&  U  ,>** , 0gNg2  ( !+ 5!% "  V "!"
!+'&0!I <eR%'& &* @E='6&02( 0!I+ 2 
I0@ 056 9 '&`- *0,&   <'0 gNg2  
 
 "!  &
&  07* "T *0 2478< &6% * '&* @7J<"5 h *8 | -)=
kF0" 0W 0
&0"25( 0"!I+ "2 7I0'8 &6% 0'J
074 1 .' ( !+ 5!%&* .' !:Ng2' 0='w
 4# 0"!:2 7U 0
6QNg2 0(<J*"!E 17 0!% <0'(*0"!E  1""
0'4&6025(
0!I+ "2 
I0''='*(! 01"!+ 2 <0"!
% "*&60E-!+0"60.'!%" !+&0!  <XR-&&  @ %!+ * ZJ<5   &
&* @8<"5 0gNg2  
<&6025(
07!I "2 
I0\=
_*  1' 
 5  6+ ,2
%!+ 5" 5!%'&
 &60E 0'( 
0'(* "!% 5 * !/'40.YR%I0}"*' 7L=
1. preparar el escenario grfico (aadiendo un TransformGroup u otros objetos
necesarios)
2. insertar el objeto behavior en el escenario grfico, referenciando el objeto del
cambio
3. especificar los lmites (o SchedulingBoundingLeaf)
4. seleccionar la capacidades de escritura (y lectura) del objeto fuente (segn sea
apropiado)

 !+ 1247 0<,B@'< 1'0"K:C "4 ? %!% '&`+0<"*(! 0'1!% 2 <eR%"2,( 0
k  2( I6"a* *  0"!|T(("= R%   M4 &0
% '* '&* @74< !+ '1"2 0<",G@'<7 1'04"K{n

Fragmento de Cdigo 4-2, El mtodo CreateSceneGraph en SimpleBehaviorApp.java

z teee y ~gq~jg6ew~YgveqY|v ~vYv`F|q6eeg

zt

EgveqgvjIYvhge6Xe|vhegq6X~{`|q`e
zt
gq6X~YjgXw6Op ehXvY$q`X~YXFg6`eg%
 t
gq6|6$uwFg6ewOp gqvB[vY5gqY6$ujg6Xeg-
 t
Op YgqY|v
t {vg7q6qXy y gq6$uwjg6e6t eR ?J@CB ' ? D BO@ / E -
` t
zt
Op XIt qexex`E`y x6|Op gqve%
e t
Op YgqY|v
t q`xXx`/Xy x$vY) 6|\`Yv6  t I%
t
6 t
y ue v6v6YqXrey 6 u qIy 66 vqrXy 6[vY y ue v*v6qXrXy 6$g6Lp gqve%
t
u YgqYIy `*v6qXrXy 6 t {v ~Yvex6` y X*6exXIXvY*6ex6y Y XXv6gv6g$-
 t
Op XIt qexex`E`y x6Iu Ygq$y 6`*v6qXrXy 6g-
 t

t
 Yv6{qrqGz6v`g6$u6Y|y uGy qIy 6F6$ey FY~v6Xv6gqe`t
t
Op XIt ~{6uey v6g-
t
zt
tgvX$XIw6Qp e
e t  v6xGY
\gveqY|v ~vv`F|q`eGuwvY$exG y uGe vv`qXrXy 6 `
kjW*&  + ,2 M,(
0&05&@< 10)(* "!% &02,(  !" (! 0'1!% 2 <", 0T#-!% 12+0J<"
&@< 10K{nM;"K-C\=' (! 0'1!+ "2 &02,(  0, 9,""l kG 2,(  6a ' 0!|('("= R-  =_*
(  &
&* @74&602,(  5!%7
<"!- V 5"J07.YR-* 0WB7 -[," ,
&
  9% &
5a 6+
3" W( 
W*  '&* E='F!+('*6%  5 5('  &* @7J<"5  '&  U**G7 -'5!+0
o7U+nJ!% < 7   04 L=_* ) 1'!% 4"K%}26-!% "6<" 1!+ "2 <'"6 &
* "!- 01!%9 #: &0
(* "!+ 5 5!+ 2 <&07% <'017!+9*#- &0<+  7(  &
&* @7=

6<" 1!+ "2  7 "!- 07!E2,%!% &* "!% 27 5 5!% '&  @4%!-"60.R%* 0} "M8"
0.YR-*I0,<"& "2. 07U*60.R%I0,F+7 6 7-8 ""=6XR-2,( 0W! 0% ,"B %[EU(*!+0
 &*  )"* 7\ 0 95  2  <  I0E=F<",!%0 "!&* " 3 !0.R%I0  * gU
0
( 0!+&* @78<5  & " 1!+9*#- &
3"  ,a' R- <'5807.YR-*I0,j+*`+-8 7=
\  "*&    0eR%"2,( 0W*0, 9)( 7
* <'0)(* "!% <"20%!+ !I0'<  ( 0' .   < <";<"
 0'8&0"2,( 0!I+ "2  0'' ;
@ 0W('
I0< !-!% "3," *?( 0!% &* @78<5 0'
&0"25( 0"!I+ "2 7I0'=F8*&
&* 07*( 0'6+!- 0!+T "!%240'4X
<'5 &*  )"*' 7O=
G 
';WF + 4E4 * "78%I" 
F 5!+'&
*+ <"4-!+(* 
0( !- ,* "!&*  , OU* 0'J<0'8!Q! 0!+'249
&0"2,*J0El

no especificar (correctamente) los lmites, y


no aadir un behavior al escenario grfico.

*_ ,+"!  &
&* @EJ<"5 0' Ng2 +J<,", &607e *0" '28<" '&6%  &* @78<W*
'  <' "!:2 *   0  d&07
 <"!% "`< (* !+0<":Ng2 0)( "!% 

"* 7O= * * 7S


05 *  
"!+9  0)( 07"240' 0' Ng2 +JK-K/&602,(
07!I "2 "
 0
*& *<" ( !% "!%97=b/ 2. Z"4<'."202 
 7 !E 0N|2  J<'&
<" 0.YR-* 0
"* 7 ( '3""]*04&0"240* )(
0' .' W(* "!% 5* ,2eR+0!% 1" 0. 6<'
!%" <" 2 "
 0\=
G0240 527*&  0*@ "!:!: . 7U80.YR-*+0)"* "3"W*0# 0"!-2 W(* "!I+<"54 & * "!- 0
1!%9 #: &0 "!%9&0E
 <!% '<0). !% M8 !%9"  2  '<0578"6* 1"'  &* &* 0<
!+'&0 '&6I0"!7<'W.* !% E=/6I0EU+ 2.' ZJ*& <"!%9*8"!-!+0!%6 * ' 
0=
47*}w""S m 5 E"44%I}/  3 "- W8w a*-
z
_ 08&
0"25( 0!I "2 7I0'(<"8 -* "!  78&*  3' "!E *1 "!< & " !- 01"!%9*#- &0\=
_ 0(!+0".' "2 (* "!% 
 5 0&
  V* &* @7J
07ln`/ #%&6I0<5 0'N|2  UM8C/
2 
 7 2 "
I0<"&6@'< 10\=
60".R%I0}"
4!% #+"!% &* '<0}(
07!E"80.R%I0 7 9YR%I0, "`  "24 5 0'&

<&
0'0! <"" < 8&*!% <07 ,' "* 7|[U*60".R%I0W  7/ M
G7 7%[')
0, 98*XR%I0'J " 2 *240  "24 5 0'&
6<'&0'0! <"* <" =j
(  &
&* @78<XR-25( 05I0) 0,&*!%' 5,(!+0. "2 7='60".R%I0,F+7 6 7%4 "4<'"
eR%"2( 0 @" 05!+0+ " G7 7%[')( "!+ 3"5 0gNg2  J<'"60".R%I0}X
M"j'I- E'" 
 "2(!%*&* "!-!%""`0.YR-*I0)B7 7%[)( "!-2 % " <0W 5 "!% '&&* @E4&60E4*G %[
&** 7
<05T '  .' E=
k8"2.* ! 1'0EU *60.YR%I0,F+7*` 7-8 4
5*
!+ )( "!% %!% * <" !70".R%I0
G7 7%['7U
 !QN W( 0 . 5240* "!- 0#:!% <", 8 ' 6 E=*G0"240,60.R%I0}*7*'
(*"!-2 7*'&&
0"`0.YR-I0}"* 7  &
* U*  * !- 0W( 0'<!QN &
0
%  "!
240* ' *<'0,60.YR% 0\= -!% 83"X *0" 278<, &6% * '&  @8<"," 4 ' 
 
 "!+*'&&* 07* 5 0N|2 IJ<"6&0"2,(*0"!I% 2 +0EU*Z  9, '&`- *0E=
k " <0}( 0 .' 5 
 "!% &6- "!7&60E"80.R%I0  * "63"*)*0 9," 4 '  W
056+9,2 "
I0, 03"3"!%20'=*(!+0".' "2 4 ' 7 
 8 '   &
2. !7<" & a*0
*0" 27J<" &6%  '&  @7 05 !  &
&* 0E &07Ng2  J<&0"25( 0"!I+ "2 7I0EU &* *
0
(* "!+ 5 *&* ' !"`0.R%* 0  * gU "6&02(*0"! + 2 
 0, 95  &6% *0\=/0!
0,"`0.R%*+0
' * "&607433"!%"240' 
 "!% &6% !/( 0'<!QN 6+ "!7 W%!+ 4  6+ W(*! 05 '&6% *0E=
_* ,2 M 0!QN <, 0* !: 08&0E
 <"!+ 74 0W',(!+0".' "2  &* *
0
 
  &* 07* " =
iw M8<'0'J0 &  07*4 6 W('! 0.' "2 7='cB* 8&
"2.' "!7"6 &7 !- 01!%9 #: &0W(* !-
2 
 7 "!E 0N|2  ;<"6&0"2,(*0"!I% 2 +0&0E4"`0.R%* 04 ' * |=\I0 &60E
 1

#+9'&*  2 &0240*<""2%!+ , ) 1'!+ K:7=_* 


0" *&* @7   !: -  5  5
0.YR-*I07*"
E*'*/( "!% 5 0'Ng2 +=

w 7* J)G I*W"%, ,[ 'W 


 2&
" 240< &!- -!+ <'W4&02,( 07!I 2 "
 0)(*"! 
07* "  V <'0,J
 &*   0\=
k 
"2. !%1'0EU
<".!QN "240J+"!74& 
%!+ ,3"54&0"25(*0"!I+ "2  0)( 0.!+"2%

&*!-  0)(<<1!% '<' ! !+ < 2  0<"
!+7 <"!- V <0E= "
%!% 83"5a *M80-!+ 
&0 * <"!% '&  087  & !: %'!+ <54&0"25( 0! + 2 +07Ua* M4<0'8&0' 83"
<"."2404* '  "!Ol
3*"2 !\ 52"240"!: M4&07 < &* 07 J<< ( "!+0W '*'&

!- 0'=
T sJ"24 "!E 5"240!- 
T68"e+Z!-2  0)(* "!% 5 &*!+' '&&* @78<0.YR%I0'  & "!- 08
 7=_ 3"2 <"524240"!-  ?&
  &
 * !%95 ,!%&
0" &
&  @8<",. '!% 7=_ 
(* "*
80'&  0  8""
!%"*<'"!- V* <00EJ:N|( &
J<", 32 <5220!- M* 3"
<'!+ 7+, 5!%&0" &
&* @78<W.* '!% U* !+7
<"!- V '<'0*W(* "!% !%9E=
_ 02Z* 0'<0J<", &   }"* 7'#:!+&**7+"2+
07!+(*0 * .' J<& !- !
(!+0".' "2 J<3"2 <"524240!- 7=/0"!7XR-25( 0EU 4" !+ 12
I0,<'5G@'<" 1'0Kn "
' 
+    5!
 T   r
T` 5  0& &* @78<T  gN|* C*='\6 0
&
* 3 & !%'W', *0,0.R%I0,&
< 8 V43" 5  0&
 ,6 W2ZI0'<0E='
0.YR-*I0*&60E6 ' "!I ,. '!% &
'<' 4 *V43" < ( !+ ,&0"2,( 0!I+ 2 "
I0\=
_ 0(!+0".' "2 ( 0 7 &* " J<'5 ,3""2 <"52"20"!- 
0ET#%9&*  J<,
<""
% #: &
!"M
*   !L%= 6F* & "240'8&* " 3" "!\*
0<U
 T 
r
T6"46&@'<" 10)(* "!% *&60E
%!% !/ 4#-"
 <'
6 0;%(
0'J<W(!+0.' "2 '= k 2,(!-3** )(*0 .' 7U!+'"2,( V* "!%208  
0<
T   r
T`&078&@<" 10535!% %   &
5'80.YR% 0\=

#" 5 5h ' 5" ' 7

\  &
&* @('!+*7 W 0'J<' "  J<X
<'5 &* 
} 7O=_* W7 1!+ "KQ
2%!+ ,9!:.*0`<&   J<"X
 73*5 &*  M 5 &*  )"*' 7O= G0240
&* 
 ". -!+ '&`% U &*  } <'". !E*?  "*< <' , +J<W(*0<"!7XR-25( !- V* !
80.YR-*+0)"* O=/0!*('6I0EU'( 0'<"240'8 &*!- .' !\%!% 8&   ,"* 7
(*"! 
07*   V* <" '=`G<'29'Ua *M2&*a 8&* *"*' 77*? 6+"
 87 0(* '3*+
<5 %   < <<"
*  E[= G0205" ,*?
+ * @4<, &   }**OU 0'8XR%25( !%43
*?
- " <"5 E/(<""8*!\a' R%0J<57 7'4 & * "!- 01"!%9*#- &0\=


 "!- 0!-2
 Wa*"240'; ' I0W 0'42ZI0'<'0'4X|e~ve Iy u` Yg",y `y $y q y {v6g:=`[a*0"!% 4  "240'8
!7 !+ 0<"5 02Z 0<0J<"5 &*  }* O=
 2Z* 0<'08q6v6eR ?Feg 5 *  02Z* 0'<04y Xy $y q6 y v6g'Mege~vX{ |y uX g7(* "!%
  &
&* 0 "!6< ( ! 0}( !+ "&602,( 0!I 2 "
 0\=*( "!+9"2%!+0<"+524Z 0'<'0,
0.YR-*IU
0 7S ""GE  % E"='F8
'&&* 07*( 0'+!: 0"!-T !%"20N
 7S ""GE  % "UM
 8&* 
!+ &* 07* < '=
 2Z* 0<'0,XX x`|7(!-2, + 54&6072,( 0!I+ 2 "
 0,&602, &
!  &0740-!+052Z 0'<'0\=cB
<, 8&07*<" &* 0*;<"<" (* !+0,N
 7> "* 7:/'6Q=_
0'J0".R%I0',"*' 7
(<78+ !7&600!+<" '<0'( !+ &*!% !7&60 . 07!% &* 07*8&0"25( XR- * 7
<0, 2Z* 0'<'0
X x6g"4&07YR: &* @E4&6074&07 < &* 07 N
 7> *'* 7:/6 "(! 07( < =
 2Z* 0<'0{v E Xq`e v6g7(!+0(*0"!%&  07* , 4# 0"!Q24 <<* '&`-  !E"4&6072,( 0!I+ "2 "
 0
 *&* *0 0gNg2  8 94 &6% *0''='e * " 0!\( 0!<'*#%&6I058-- J<''&  !QU "60".R%I0
&0"25( 0"!I+ "2 7I0,6%9 &6%  <'0'=
cB80.R%I0}' 76I9 '&`- *0@ 0,&* 7
<0*Ng2 +4 
 "!+*'&&* 0E 74&60E4
*0" 27J<" &6%  '&  @78<58h *= G0240(
0' .'  *!'  !- T '  J'
 *"!  04 ' !I-* "U'4&
02,( 0!I 2 I0}('<'Wa '&
"!  , &6% 0)( 0!E298<'W* 4   7=

 2Z* 0<'0`v Ey v|f


% 6&078&02(*0!I+ 2 "
 083*%!%  74&60E 6#+0"!:2 '&  @,( 0! K
'  ( 0"!7eR%"2,( 07U 6F   .*0 "!+<7U'_ jEM4&60E4&072(*0"!  "2 "
I0441'7*"!% *( "!%
(!+01!% 2 "!74"`% "2( 0\=\ 52Z* 0'<0<" ' 5* 5!% #%"!+7 &*  "`0.R-* 0[
(!- 2 !: 05 
0'&* <'0, '&6% " 2+&074"6&0"25( 0! + 2 +0E='j0*?'  
&0"!-!-( 0E
< 7 52ZI0'<0{v Ey v{G=_ 4  6+ (!- 2 "!- '/ <*#- *&0205 5(!- 24"!% 4  6+
<eRQ
 , ,"8h *8 | -  *0EU

a *M29J<5* 4  6+  '&6%  7=/0!70EU(*0"!
eR%"2( 0EU 08&0"25(*0"!I+ "2  0,F  }(
0'<"!ON "40!- + "!\a &*  '<"  6% 8 ' 
(!- 2 !: U*78&
 0<4  !: T '  8 &6% * J<'7-! 0<"
2 240, &
* !- 01!+9 #: &0E=
k'2 "!- 0<)4Z* 0'<'0'J<5 ,[  }"*' 
6"a * ' 0"!7* &* 
, ". %!% '&`+ 3"&07
% "" 24 "!+&0<%!% ". eR+0)(* !+ 5 0'

&0"25( 07*
 8<&025( 0!I 2 "
I058  =
Ey vWXvX Ey v{Fg
w*  *5 8 '  W(!- 2 "!-   0&  <" &0E8+,&602,( 0!I+ 2 "
 0E=
rYy xhy ey $y q y {v6g
g &* "  V 6+&02,( 0!I+ 2 +0E=
rYy xBXX x`Iy {
X xe
/0'  5 5 <'7% <' '<,'( '&* #- & <' E=
rYy xBeg`~{vX{ $y ue Y p|qXrYqt $y t E eXuwv6gqIy 6w~Y$y gv6$y qX
F! 0&
* 54:N|2' 0)( !% 6 &
0"25( 0!I+ 2 7
 0E=
rYy x{v E q6e v6$e6 veq6jgqgvX
B&6% * 0<' &6%  +,&0"2,(*0"!I+ "2  0\=
rYy x{v ~vex6e y X66ex6y Yveq$I*6exy X{v`q
gve6y 
kj" '&&* 07* , 5!%1 @EJ<"5Ng2 +J<&0"2,( 0!I 2 "
I0,&
0 0'Ng2  ;<  ' *#
(&* #: &
<'0E=
rYy x{v ~vex6e y X66exX *6exejgvey 6
kj" '&&* 07* , 5!%1 @EJ<"5Ng2 +J<&0"2,( 0!I 2 "
I0,&
0 0'Ng2  J(*'&  #- &
<0''=
rYy xFq6v6eR ?Fe @4qv6eXx6y $y j~YIy v6$y qe
w*#- *+&*!-  "!- 0<"< (* !+0<"&6025(
07!I "2 "
I0\=
Z"`B 8 | :

_ 04B02,( 0!  2 


I046+94 '&`% *0 < ( 0'(* "!% 
"!< ( "!% <'0 E
@ 0,&  "*<'0
 gNg2   006/0" < *1_ *#+ +! *'&&* 07* &0"X *0" 27J<" &6% * '&  @8<"5*
h 8F *$ :5=
_  W !%&  6<'W4Z*+0<0J<", ,[ 
h 8F *$ :
\I0'24ZI0<0'8<5 &* 
h 8j g 7-0". % "*JM8
" '&
&  0 4 !+ '<" 0<"
*0" 27J<" &6%  '&  @7 `#%"!+ '=FX   0"!/(
0!"<" #+'&6I058'CE=
| eqX`evX ~|y rYqX$y  q`x`y Yg
. %  ,"
!+ <" 0< &6- * '&* @8<qVh 
8F *$# 0"!-2W=
rYy x{v ~|y rYqYIy  qexy  $ eq`q`~$y rq|y 6 qex6y {
kj" '&&* 07* "
!% < 0<, '&`-  &* @78<"R Vh 
8F |# 0!-23"<*#- *5; *0" '2"4<
'&`-  &* @74  !%<<0"!<5 W( *+ # 07!-2 7=
                $    +  / &       $          & $     &       

_ 08&
0"25( 0!I "2 7I0'4 &6% * <0'J*< (* "!% ( 0!\ 0'&*'!:!+*&* <5" 00W29
6- 2 08(&* #: &
<'0'=6% 2 0<'< (* ! 0W( "!% ,"4&6072,( 0!I+ "2 "
 0

(&* #: &
,* "*<'0<"*& < %J<", &  
 7> "G7  + E=
_* &*   . %!% &6+ fU 7> ""GE
7 - 7"U 4 5.  )( !+ I0'<"  8&* 
J<< (* "! 0
<X

*  7[=*[ *&0,&* 
8 ? %  <N
 7S G7  % EU'*  &* 

". %!% '&`+W
7S [- "- 7U J0-!+ 8&* %! 0}(!-2 +" &
0"2,(*0 &* @74<'52,f % ( 
&0*<" &  0*8<<" (* !+05"* 5f" & &07 <" &  @8<"< (* "! 0\=_* W7 17!% 4"K 2%!%
"69"!-.*06<'&* 
'=

c * &
07 < &* @7J<"<" ( !+0)( !+ W"J07.R%* 0} " W(<,(*'&* #- & "!&0240)
B
&*!- +!- 0<<" (* !+0,(&N #: &00,&0"20W* &072. '&  @78<"&*!- +!- 0*
7
<0,&   
&0"25(6+ =_ J 1 "
+; '&&* 0E 8<' & !-.*7X
 7> G*" + EJM8**
.&  *'=
7>

"G7  % E

*_ &*  W7S G7*" + E,(! 07(


07!+&* 07* <'0'2Z*I0<'0'=*(!: 2!\24ZI0'<'0EU
q6 E v6uwv6{`U
< *" W' 5   ,7'4+- 78<I0'<'0' 08&*!-  !- 0J<<" (* !+0)( !% "`0.YR-* 0
7S "GE
7 % 7=e0%! 0W2Z*+0<07U|$y `Xv6gv`x E vujv6g`U 72"!+ ,3Z& !:  "!- 0Wa
&
* <0,3""6&0"25( 0!I+ 2 +0  < (* "!% <'0\=\ 52Z* 0'<0W(*0'<!QN  !\2 Mf
- 
4" 24ZI0<05eg`~vX{ |y ue YB<'W40".R% 0"*' 7O=
k'2 "!- 0<)4Z* 0'<'0'J<
 7S ""G7  % 7
_* &*   . %!% &6+ 7> GE
7 % 74 5.* '
W( !% I0'<  8&   ;T  =
F! 07( 0!+&* 0E 5 0'J 1"' 7+2Z* 0'<'0l
X `ujv6gq$y jq E v`uwv6{Y|
w*  *5"* 724"!% '&  @4&07JI0<'0' 0';0.R%* 0TS 6""(*[!:  "!- 0E4"
&0*<" &  @"=
E

X `ujv6gq$y |Iy `ev`|vex E v6uwv6{g


w*  *5"* 724"!% '&  @8<I0<'0' 0'J0".R%I0'S 6"(!-  "!- 08<" (* "!% <'04
6+ &0E < &* @7=
E

7>

"[- "- 

7S

"[- % E4'* &    ".*%!% &6 W( !% I0'<  8&   ;T """=
7S "[- % EJ
@ 0)(!+07(*0"!+&* 0E W2ZI0'<0El*qXIy eev6gvex*=j! 0. .' "2
+W 0
*&  + !+240*
!+,2Z 0<0M ,3" 2Z* 0'<'0|$y X`v6gvex E vujv6{B<'
7S "GE
7 % 7!+'   V*  07(*"!% &* @7,(
07!/
0' 0%!+0'=
k'24 !- 0<W4Z 0'<'0'J<7>  [% "- 7
X vXqqe{*Iy eev`|vex6g
w ' *-- &*!%  !- 0< ( !+@,&0"25( 0"!I+ "2  0\=
[ '
'87>  [- "- 7

 m % '

*_ 4b .' "K:CW(!%


7+ 5 WnX5&*  N7S ""*: I- 74( '&N #- &
='\ 8&*  J 
*
7(* "!% '( '&  #- &
"!E 8&07 <" &* 0J<"< (* "!+0<5 0J0".R%I0'* O=_
0'
eR%"2( !+8<, 8&   J*5 * " < ' <*  2"
 0,4&0"2,. '&* 0=
Clase Criterio

Disparo

WakeupOnActivation

en la primera deteccin de una interseccin del volumen de


activacin de un ViewPlatform con la regin lmite del
objeto.

WakeupOnAWTEvent

cuando ocurre un evento AWT especfico

WakeupOnBehaviorPost

cuando un objeto behavior enva un evento especfico

WakeupOnCollisionEntry

en la primera deteccin de colisin del objeto especificaco


con otro objeto del escenario grfico.

WakeupOnCollisionExit

cuando el objeto especifico no colisiona con ningn otro


objeto del escenario grfico.

WakeupOnCollisionMovement

cuando el objeto especificado se mueve mientras colisiona


con otro objeto del escenario grfico

WakeupOnDeactivation

cuando el volumen de activacin de un ViewPlatform deja


de intereseccionar con los lmites del objeto

WakeupOnElapsedFrames

cuando ha pasado un nmero determinado de frames

WakeupOnElapsedTime

cuando ha pasado un nmero de segundos determinado

WakeupOnSensorEntry

en la primera deteccin de cualquier sensor que


intersecciona con los lmites especificados

WakeupOnSensorExit

cuando un sensor que interseccionava con los lmites del


objeto deja de interseccionar con los lmites especificados

WakeupOnTransformChange

cuando cambia la transformacin dentro de un


TransformGroup especificado

en la primera deteccin de interseccin del volumen de


WakeupOnViewPlatformEntry activacin de un ViewPlatform con los lmites
especificados
WakeupOnViewPlatformExit

cuando el volumen de activacin de una vista deja de


intereseccionar con los lmites especificados

G\ "- '4;*+ J


+W7d  '[- "% 7
VG "!- 8&   N7>

 - "- 4 < ( "!% 8&


07 (!- 24!+ <'+'&&* @7 <'W'
* *7 0E=_ 0,3"* 1 #- & 3*,"6&*!- +!- 0@ 0 < (* "!+ !+9W' 8 V( 0!7&
<" * 
I0E=
/0!eR%"2,( 0EU40".R% U
0 7> 46 + + 7J< ( "!% !%95 ,+! *&
&* @78<e *0" 2"
< '&6%  &* @78<5"J[ *8F | 7-M 5!+1" @74<'5gNg2  J<'"`0.YR-* 0)'"* 
0&  <'0E= 7%!% 43"5 5 
 "! 
'&
&  @7(!   7U "q 7S G*" + 7,
0 
< ( "!% !%9<"W *0E=_ 0)2 2408&* "!II0)(* "!% ,&   3"' "!E2 !+&0*&*7 &* "g='iw 
3"  7<"*+&6 ,3"5 0'T 0 '27*
0W
 "!+ '&&* 07 29 0 W( 0'<!+9
< ( "!% !7<')* *0," 7S "GE  % E"=
iw M; * !- ( !+XR- 8<,&   N
 7S "- % 7&60!-!+(*0*<" "
+ F-!IM`mL7?' 0
B&6% * + 076mOw' '&6%  *- 07 ='\ & !-  "!- 0
@" 0 <" (* !% "!%94"  "!Q* *&  86-!- &6 
"2,(**V  <0&0E 08&*!- +!- 0J<"Wj%! MJ04B&6% * % 0"=
7S "*6 % *% E
\( 0 .' 3"5 5!+17 @78<'5Ng2  +!  &
& 07 &07e *0" 28<" &6%  '&  @4<'
J[ *8F g 7- .!%* *2
 ,3W 0
 <'+'&` '< 7=*B0  '&*7
 "2
 U
0*
< ( "!% !%9W *1""* &07*<" &  @8<Jh&`%  *% 080w '&6%  *- 07= 6 XR%0,+ '
&* !+&*'  *&* U*&0"25(
07!I "2 
I0} 0* &6% * W''*&
E=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 46 + *% 7

7? % " <'El@q6v6Xe\$y gv` y 


\ &* 
(&* #: &
, &60E
< &* @78<<" (* "!+0, W(!: 2!+ <*+'&
&  @78<5"
 
 "!+*'&&* @74<'"X *0 '278< &6% * '&* @8<"58h *8F g+- &0 !%1 @EgNg2  <
40.R%I0Ee= 7> *` - *% 76+9"2,(* "!%eR- <'0,&60EX
 7> j + *+ E3
!%"240294 <" %E=
@4qv``R?F

~Iy rq$y 6X|


G07
-!- M*5" 0,& !:  !: 07>  46 % *% =

 "*6z7 3 *
VG "!- J<'5 8&* 
N7S [- +"- 78+ "*"&0 6-!:*&6I07!+;M2ZI0'<0
<(**<" "
+J<"6< ( "!+0E=/0!XR-25( 0EUe7S ""*6z7 3 * - "*<0'
&0 6-!:*&6I07!+;M"2Z 0'<'0\=_*08&07 %!-*&6 0!%(*!Q2  " '( '&  #- &
'&  @8<'
* *7 0wdb * *<05&0 6+ 
+J<"&   Twdbw=
2Z*I0'<'0<" "  !:!% *M8<"
* *7 0wdbD&07
*& - *083"*& * "!+074"`< (* !+0\=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 46#7 3 * 7

7? % " <'El@q6v6Xe\$y gv` y 


\ &* 
(&* #: &
"6<" (* ! 0<","5 7&* " <'00&*'!:!+W' * 04wdb
(&N #: &0E=
@4qv``R?F

@8 E rYv6{|Iy { @4 xe
G07
-!- M*5" 00.R%* 0U7> 46z7d 3 7
:U <07 <z7#" 5 0<"
AM7 *O=gAw b7wFhU'AM'E *O=gAw whkjkBjhUAM'7 Q=|Aw hF_BkBwhU

80* 7 7Q=| cwkh _ AjhU807  E 


O=g cwkB wh/kFkhjhU

80* 7 7Q=| cwkh [F_'hkBjhU'J0*


77 "
Q=g cwkB VjhU

80* 7 7Q=| cwkh [hJjhU


0W
0,<", 0J0%!+0'2&*a0'  " 0!%J<"* "
 0=

@4qv``R
?F @8 E rYv6{|I 6GvrYv6{  qX
G07
-!- M*5" 00.R%* U
0 7> 46z
7d 3 7
E  " <'0   0"!% w<
DVjFb TBkGA=\I0'  " 0!+J 0"lA
DVFFb TBkBAwU cwkB DVjFb TBkGAwU

cwkB bw

DV[wFb

TBkGAwU80%! 0'T  " 0!+'=

k2 !- 0<52Z 0<0J<"7> *6z7 3 * 

@4 E rv6{l 6evX @4 E rYv6{|$


w&*(!- " !-!% M8< * 0'wdbD&0  &
- *083*0'&
* 07* "! 0E4"6<" (* !+0E=
7S

 "*'"*' :/'
_* &
07 < &* @7N7S *'* :'`RQ'
I0,&0 2Z* 0'<'0,XX ,<"5 &   
 /(!+0(*0"!+&* 07* 7'2&
 240, -!+ ZJ<&** "` W(<""4&
007! <"* "!E 0
&0"25( 0"!I+ "2 7I0'=cB40.YR%I0 /(<)(
0'6+' "!\';   0"!7
 !+0}$S(* "!I% & ' "!O=
%! 0,&0"25( 0!I+ 2 7 0)('*'<',(*&* #: &
!*&07 <" &  @8<"< (* "!+0EU*  <'0)
7S "*'"*' :/'QU
&@280,76 '  <0W5|S(* !I% &* !<'
<"580.YR-*I0
 7(*&N #- &60\=\6 0W(*"!-2  5 &*!+' '&&* @78<07.YR%I0',"*' 7\(* "!%
  
&0"20,3"W'*0 .'!% ,"* W('*!I M80-!+0< #%!%%, &  !-!+E= !% 6+ W2  "!- U *&   
0
 W(<"";# 07!-2, "!&072(*0"!  "2 
I029J&
072( eR+0' * "*<0,&
0"25(*0"!I+ "2  0';M
&007! <"* '&* @(*0+"!- 0!O=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4'"*' 7:\6
7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0<W'40".R% 0D 7&  " <'0W"8&072(*0"!  "2 
I0
(&N #: &0W( 0+' W'*  0,(*&N #: &0E=
@4qv``R?F`v`Xqrey 6IX$Iv`qXrXy 6 YvqXrXy 6

X y Y
X x`
G07
-!- M*5" 0,& !:  !: 07> 4' ' 7:/6O=

0240W"X7> G  + 7,(<, "!&


0"25(I0}( 0! * "!- 0'80".R% 0
G
7S "[- % EU* *&  
M*"*<'0W29J<W'X7S ""*'"*' :/:U* 02Z 0<0
(* "!+ <*+"!-2  !\ '(*'&* #- &
 <' <0E*'&

!- 0'(* "!% 5 
 "!Q(!++ "!\'* *7 0<
< ( "!+0E=
k'24 !- 0<W4Z 0<0';<"7>  *'* 7-/6

v6XqrXy 66`vI*v6qrey `Ig


w ' &0"25(*0"!I 2 I05(&* #- &
<'0,6 &07 %!:*&6I0!O=
y {evY e x`|
w&*"(*"!% "  " ,( '&  #- &
<0,4" 7S "- - /"=
v6XqrXy 66`v$y eev6$y *v6qrey `Ig
w ' &0"25(*0"!I 2 I053"< (* "!+0,+  0\=
y {evYg*Iy eev` y 
e x`|
w ' *'n " 53"*,&
*
@,"`< ( "!+0<"6&02,( 0"! + 2 7
I0E=
 !+ 1247 0<,B@'< 1'0"KQ M4 !+ 17247 0<,B@< 104K+ 2,6-!+ "8&@<" 1'0
(* "!+&* " (* "!% ,"(!+01"!% "2 <XR-"2,( 0,3"5 * W( 0'6+0<&0"25(*0"!I 2 I0'( !+
&007! <"* "!&02,(*0"!I% 2 7 0=F6eR%"2( 0, .!+M&* "!-!+ 5* W('*"!I+ E=F6&6@< 10W *&  
M*
* &* 
El*"* 7QU
M4'&6@'< 10,3&*!+' 5 0'J<0'80".R% 0'* O='
 17'*<'007.YR-*I0,'XR-2,( !"<W[ ' *' 7QU 3"*8& 
"J<7'(  & <0*? '&6I0
<,/ O=F[ 
7/ QU &0 <" &  @48&6025(* "!I% < ,4"
2ZI0'<0
y Xy |y q y qX$y  M4&0"25( 0!  "2  00E(I0,&
0"25( *+ <0=
Fragmento de Cdigo 4-3, clase OpenBehavior, y un ejemplo de clases de
comportamiento coordinadas

teee y ~F~Y qX{?FXv66 v6XqYrey 66vXsvxew*v6qXrey 6


t
zt
X y rqvgqYg6$uwjg6XFgq6gevYg 
X y rqz
v @4qvXX\$y |v6$y 6Gqy eg76xy Iy 66
t
X y rqz
v @4qvXX\$y |v6$y 6 @4 E rYv6{|x`y |y `6
t
t
t
?Fv6`v6YqXrey 6$g*|q66$uFgegq6gev*|
$ey et gq`|Xv*wgqgev*w
 t
@4qv6eR ?F @4 E rv6{|.*v E rYv6YIt E (B6 JE ' E  %
 t
@4 E rYv6{|x6y $y `G[YvY]

  t
e t
t eee y ~/rY6y xGv v6XqrXy 6l ?FOpgv`~I*q6 |Xv6$I*v6qXrXy `*v6qrey 6l?jOp|v`~|
qy eg76Xx6y Iy w[vYP
@4qve1 ?j`*vYqXrXy ` e|$vqrXy 6l ?FOpgv`~I %
zt
t
t
t eee y ~/rY6y xhy ey Iy q y {v6||

t
 t

$ey et q6v6`1?je 4
@ E Y
r v{g76x6y $y %

 t

 t
 t
e t
zt
X t
t
` t
t
 t

eee y ~/rY6y xhX|e~ve{ $y u` Y E `eujv6gqX|y w~Y$y v$y qe|


y
@4 E rYv6{|7`Xx6y Iy 66t qe{*$y `Xv6|vXx6gI|
 *ujqvGxee6Yv6
~ex`vvXs~Y Xxevex
$ey et q6v`eR ?F`$q6y *X|7`Xx6y Iy %
X x6 %
v6 {vw
$ey et q6v`eR ?F` @4 E rv6|76x6y |y 6Y-

 t
z  t  v6xGY~ qX{?jv66*v`Xqrey 6
Fragmento de Cdigo 4-4, cdigo para usar las clases OpenBehavior y CloseBehavior

t
y Yy xevGqhujv|XexjgGqXYv6u` vw$vY~vv6gqeBt tt
t
zt
 
~YgveqXvj$vB|v6 vXrYq`Y66Op|v`~
*|q`6IuFg6ewxee6*hvYWgq6Yg6IuwFg6eeg%
t
?Fv6`v6YqXrey 6Yv6q
?FOpgv`~
hXvYH
?jYv`*v6qXrey $gxee6*%
t
\ X{v
*v`Xqrey 6
~Y XYqv ?jOpgv`~YvY)\ ev
*v6qXrey 6$|xXe6g*%
t
t
 Iegv6q6gvw$YvhvqXry 666Op|ve~
 t
6v6R ?FLpgv`~It {vY vXqrXy 6l ?FOp$vX~I q6 $v6$|~Y e{qv ?wQp|v`~%
 t
~Y e{v ?jOp|ve~ t YvI*v6XqYrey `k ?FOp|ve~$*q6 $v6$g6Xv61 ?jOp|v`~%
  t
e t
t  {v`Y~YXvex`` y hXxe/g`*v`Xqrey 6Qp$ve~A w~ex`vvXs~Y XxevXx
zt
j~{exevGvsY~ XxXvex
t  
qX{vu` vY~v6Xvgq6e
t
_ 080.YR-* 0'J<6 8<'0'8&*  !%( 07 <"!-9""46:!- &6    !Q*  &* , 5 0'8 
I0'
<W(  &* @EJ<" &* =6&0"2,(*0"!I+ "2  0W* " <" ( "!% "!+97
!+( , , W(!- 24"!% )('  &* @7"=F8!%( 7U
 ]* " ,&0"2,( 0!  "2 "
 0
[ ' / 7M8 ' &
&  0* *&
07 <" &  @8<"< ( "!+0)(* "!% 3"
 5* *]* " (* !%
6+07.YR-* 0E='`0.R%* 0) ' 7/"* 7" " &
&* 07* 4&
07 < &* @7J<"<" (* "!+0)(* !% ,3"

  W* W('  '&  @4<'+'&* "!+( , , 


]* "`<
<"60".R%I0)*7'/ L=
F<4 &
07-!+ "!\,(! 01"!+ 2 <,XR-25( 0, j00"!|((= R% * * =
_*  1' 
 )(  '&  @78<4+&* <" (* "!% "60.R%I0)[ 
7" L=\I0.R%I0, "a0"!+
!+   V* , 52 *2 4#- &* @743", &
". <5!+' "  V "!"60".R%I0W*7' Ll 6 "N 5'
 "] `M!+
+' ,(!+0E( &607 < &* @78<<" ( !%0E='`0.R%* 0)[ 
7 ' &  "!-!+ 5
("!I+ !+('*+  , W('  &* @78< '&  7='4    5 8&07 < &* 07   &*  'U
  1 "
 W('  '&  @25(**V !%9<"W 0I0'<'05*(! 0& 
0E=
7S

 "*G" * 7 3 -YM
 ,H(<"<"*+&6+ "!E &0"   @78<'0.R%I08"4 2*<0 ' !I- "g=iw *MJ%!+8&* *
7S "[- % Ef +  ( "!% 5('! 0&
 "!E &60  * @4<'0.YR-* 0'l
7S "*h" * 7 3 -Y Me
U 7> "*4G  7 J* :U
M
7S "*G" * 7 3 L O=
cB[!-  !- U
0 7> 4*G7 * 7 3 %Y M8 <" (* !+ "!%9&*  <05"80.R%I05&60    0*)(
0!
(!- 2!- 8 V='_107U*&*!-  "!-
0 7S ""* * 7 8*"7
"<" (* !+ !+9
(*0+*&   24%8  "!- 0'8<" (* !+0'2 7%!+ 8<0J0".R%I0'4 9474&60  * @a* M
240* ' 2 "
I0W!% *- *07
-!+5 0J0.YR-*+0=7 *  24%U'8 @"
0 7S ""*4G7 * 7 3 L
 <" (* !+ "!+9&* 7 <'0#-    &
, &60    @"=
 ,@ 0}(<52 "XR- !E"* &0"   @7(
0!7&
<" 07.R%* 0 5 8 V=cB 4 *V43 
a <*%&6 '<0)' &60  * @4<540".R% 07U 8&60  * 0*8&0EJ0%!+0'J0.R%I0*0

<*+'&6 !%97a 6+ 3"8#: *   &5 5(!- 2"!% &60  * @"=6b 2.' Z('<0&*'!-!- !73"W'
&0"  * @7J  4+ ".'!% ,35*0
 < &6+ < M( 0"!\ 0 
I0} 0*<" (* "!+ "!%9W 17'
&0*<" &  @"=
_* <*%&
&* @4<&0    0*42498&025( XR- 3*,6+ <  &*  @E807.!%5 
&0*<" &  0*8<<" (* !+0/=
k 42. !+10 -
 0"!- *
0,&*'.'!%5 <"* '&
&* @8<'
&0"  * 07 4"4<'+ "  U'( "!% I0}(<!%*#+!- !I+ 5 )\(*&* #: &
&* @7J<""G 
7[=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4G7  E 3 %YM

7? % " <'El@q6v6Xe\$y gv` y 


\ &* 
(&* #: &
,8<" (* "!+0, W(!- 2!% <' '&&* @78<&0"   @7J<W'40.YR% 0
(&* #: &
<'0,&60E80%!+0,0.YR-*I0578" &7* "!- 01!%9 #: &0E=b/ "2. Z7(<"T !Ll
7S "*G" * 7
J" :U
N
M 7> 4*G7 * 7 3 L Q=
@4qv``R?FX y y 6 E

{ | +*6eYxejq`Iuy 
6`xX{
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'w%!IM"=
@4qv``R?FX y y 6 E {| "exevGq6$uy `xeve
G07
-!- M*5" 0,&  !I !: 0> "`( *B0    07'w%!IM"=
@4qv``R?FX y y 6 E {| "exevGq6$uy `xev
y YeXvev`x7y {
G07
-!- M*5" 0,& !:  "!- 0> "`"( *h0"    07'w%! M'U <0E <(*''<EiGl
USE_BOUNDS - Usa lmites geomtircos como una aproximacin al clculo de
colisiones.
USE_GEOMETRY - Usa geometra en el clculo de colisiones.

@4qv``R?FX y y 6 E

{ | ~v6Xvejgq6X6*qYIjq6$uGy qYI
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'w%!IM4&0Ecwkh 6 chhwk&0240

 0'&* < <<"&*a0'3*E=


@4qv``R?FX y y 6 E {| ~v6Xvejgq6X6*qYIjq6$uGy qYI6Yy {`v`vex6Ey {
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'w%!IMU <0E <'(*''<EiG
cwkB 6 ch[wkP0}cwkB  ,EbwT=

7S

"*G" * 7 3 L

k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4G7  E 3 L'


7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0&* 7 <'0  !-2 * 5 &60  * @8<,"40".R%I0
(&* #: &
<'0,&60E80%!+0,0.YR-*I0578" &7* "!- 01!%9 #: &0E=b/ "2. Z7(<"T !Ll
7S "*G" * 7
J7 :U
N
M 7> 4*G7 * 7 3 L Q=
@4qv``R?FX y y 6 E

sey |I*6exeq6$uGy `eXxX{

07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'E? Q=
G
@4qv``R?FX y y 6 E sey |I"exevq6$uGy X6"exeve
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'E? Q=
@4qv``R
?FX y y 6 E sey |I"exevq6$uGy X6"exev
Xy {6XvXvex
7y {
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'E? :U
<'0*<(*'<EiG 
"l
USE_BOUNDS - Usa lmites geomtircos como una aproximacin al clculo de
colisiones.
USE_GEOMETRY - Usa geometra en el clculo de colisiones.

@4qv``R?FX y y 6 E

es y | ~{v`v`Fgq6``*q|wq6Iuy 
q|
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'E? Q=
@4qv``R?FX y y 6 E sey | ~{v`v`Fgq6``*q|wq6$uGy 
q|Xy {6XvXvex
y Y
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'E? :U
<'0*<(*'<EiG 
"
cwkB 6 ch[wkBU
0}cwkG  ,EbwT=

k'2 "!- 0<)4Z* 0'<'0'J<7S "" G"  3 L'


*``xe`vY IuGy X*6eXx$
w*  *5 0N|2  J<'"`0.YR-* 0W* <'0, (*&* #- & '&* @7J<"5 &607 < &* @78<'
&0"  * @7=
~{v`v`Fgqe6 q|wev $uGy X6*q$eg
w*  *" ( *-a * <07 (&* #- &
&* @7J<5 &07*<" &  @8<'&
0"   @7=
*``xe`vYg$y `ev6$y *6eXx|
w*  *"`07.YR-* H
0 60 <'83"&
 
@W &60  * @"=
~{v`v`Fgqe6 q|wevIy eev$y *q|eg
w*  *" ( *-a3"<" &*!- ."60".R%I053& "  @W &60  * @"=

7S

"*G" * 7 J"

k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4G7  E 8 


7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0&* 7 <'0560".XR%I0,(&* #- &
<'0 52,** <7!% %
 &0"  * @74&60740%!+00.YR:*I0,74 & " !- 017!+9#- &0E=b/ "2. Z",(<; "!Ol
7S "*G" * 7 3 -Y MU
N
M 7> ""*4G" * E 3 L Q=
@4qv``R?FX y y 6 

 rYv6uwv6{|I6exXFq6$uGy 
6`Yxe{
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'80 "2"
Q=
@4qv``R?FX y y 6  rYv6uwv6{|I"exevGq` uy X`xevX
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'80 "2"
Q=
@4qv``R?FX y y 6  rYv6uwv6{|I"exevGq` uy X`xevXy 6XvevXx
7y Y
G07
-!- M*5" 0,& !:  !: 0> "`"'( *h0"    07'80 "2"
:U
<07 <'( <\iG 
l
USE_BOUNDS - Usa lmites geomtircos como una aproximacin al clculo de
colisiones.
USE_GEOMETRY - Usa geometra en el clculo de colisiones.

@4qv``R?FX y y 6 

 rYv6uwv6{| ~vYv`F|q```*q$jq6Iuy X*qYIY


G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'80 "2"
Q=
@4qv``R?FX y y 6  rYv6uwv6{| ~vYv`F|q```*q$jq6Iuy X*qYI`Xy 6XvevXx
7y Y
G07
-!- M*5" 0,& !:  !: 0> "`"'( *B0    07'80 "2"
:U
<07 <'( <\iG 
"
cwkB 6 ch[wkBU
0}cwkG  ,EbwT=

k'2 "!- 0<)4Z* 0'<'0'J<7S "" G"  J"


*``xe`v IuGy X*6eXx$
w*  "`07.R%* 0}"   <'0}( !+ ,(*&  #% & "!E &0 < &* @78<,&60    @"=
~{v`v`Fgqe6 q|Xv $uGy X6*q$eg
w*  " ( %a * <0, (&* #: &
&* @78<'5 &07*<" &  @8<&
0"   @7=
*``xe`v$y `ev6$y *6eXxXY|
w*  "`07.R%* 0}" 83&  
@W &0"  * @"=
~{v`v`Fgqe6 q|XvIy eev$y *q|eg
w*  " ( %a3"<" &*!- .,60".R%I053&
"  @W &0"  * @"=

7S

"*"w % % 7
k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4w % *+ 
7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0)(* "!+ 5 5('!- 2!+ < &
&* @EJ<"3",e 0 '28<
'&`-  &* @78<eR% <5 
 "!+
'&
&  0 !7&60E 5!+1 @E8<5N|2  ;< 0.R%I0\=6b 2. Z
(<T " ! 7S ""*46 % % E"=

@4qv``R?F`v`qe~|y rYqYIy eg

G07
-!- M*5" 0,& !:  !: 0> "`"'( '' '&`- * % 0"=

7S

 "* 3 7 F %"
60.YR%I07> ""* 3 7 J +J 5  W(* "!% <" (* "!+ !E"J07.YR-* 0, '&6% *0
<'(Z8<,3,a *M* )( * <0W,f'2"!+0,'(&* #- & <'0<"4#-!+ "2'='ch8:+4"G7

<o(*&* #: &


3 <" (* !-746* 1"' %4#:!+ 2E=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4 3  J +4'
7? % " <'El@q6v6Xe\$y gv` y 

\ &* 
(&* #: &
,8<" (* "!+0&* 7 <'0)a* 7,(  <'0)f2"!+0,'(*'&  #- & <0<"
#-!+ "2=
@4qv``R?F E

qY{vexegqujveIy {e|gqujv`e{
G07
-!- M*5" 0,& !:  !: 0> "`"'( 'F (
*<E7!+ 2=

k'2 "!- 0<)4Z* 0'<'0'J<7S ""  3  'F "%"


y ev E qY{vexegqujv`76e$|
w*  *"6&0E '<07!"<"524 !+&0N7S ""[: "- E43"8#:*W
-   V* <'0&  <'0*
&0 6-!:
M*@, 0.YR% 0\=
7S

"* 3 7  

 ,H 0)(<"1 "!% "


% V "!7"e- 2,( 0, ? &6 0,
%!+< ( ! 0(* !% W4& !-  !: 0
7S "* 3 7  \='cB8<" (* ! 0,0& !-!- !%974 240"2
I0,'('&* #% & <'07U 052, M
&
!+&  0\=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4 3  ' 
7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0<'(ZJ<,35a M* ,(  <'0W"f'2"!+0<
2    1'*<'0'8'(*&* #- & <'0\=
@4qv``R?F E

qY{vexey ujv6I YBuBy y {ve~xX{


G07
-!- M*5" 0,& !:  !: 0> "`"'( 'F (
*<b 24E=
k'24 !- 0<W4Z 0'<'0'J<7> * 3  ' 4
6XevX E q6Y{v`xegq6uwvy uwv6g
w ' *"X   0"!7<'% 25(
053" 5 %   V @," &07
%!-&&* @E8<+07.YR-*I0\=

7S

 "**j* 3 %kM
F8  ,hU*&* " 3' "!< (
0' % 0<7-!% <" <" 6% 0<` '&* <'0,0, !+ * @74
*7O='cBJ 
 0"!78&
07 & (
I0, ".*%!% '&`I0}(* "!+ W8< ( 0 % 0<
%!% < 7=*h <
 " 
0!- *5(''
 05& "  "
 <*#-  <'0,4"`  "24 <"&600"!+<* <" J<"6 " 
0!O=
_* ,+"!  &
&* @EJ<"*(
I0,& "  "
+<5"J 7 
0"!7&60E ,!%1 @,('<'<*+'&6 ! *
&0 8&* 
N
 7> **j7 7 3 %Y MJN
M 7>  w*67 3 L' Q=
\( 0 .' 3"58 *
0"!7-!%M8
" 1 <W' 5!+1 @74 "!-2 <  !%97( <' "27
 3"
  1* <5 8&07 <" &  0J <" (* !%E=

k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4*w 7 3 %YM

7? % " <'El@q6v6Xe\$y gv` y 


\ &* 
(&* #: &
,8<" (* "!+0, W(!- 2!% <' '&&* @78<5 5 "! *&
&* @7J<"
&** " 3 !
7

0!7&60E 0'Ng2 +8(*&* #: &
<'0'=
@4qv``R?F

v`{6 E {$ *6exejgvey 


G07
-!- M*5" 0,& !:  !: 0> "`"'( 'j%! M=
k'2 "!- 0<)8Z 0'<'0'J<7> ""j"*7 3 %YM
*``xe`vYI*6eXxg
w*  *5 (*'&  #- &
&* @78<'5gNg2  J<', 0.YR-*I0\=

7S

"**j* 3 L'

k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4*w 7 3 L'


7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0, W(!- 2!% <' '&&* @78<358 "  0"!73"
(!% ' "2
 5 
 "!%*& &* 0* ". &07 0'Ng2 +J<XR- <"5 
 !% &
&* 07 !7&60E 0'
N|2  8(*'&* #- & <0'=6b/ "2,. Z"(<"  ! 7> "**j* 3 %k M=
@4qv``R?F

v`{6 E sey | *6`YxXw|vX6y `


G07
-!- M*5" 0,& !:  !: 0> "`"'( 'E? Q=
k'2 "!- 0<)8Z 0'<'0'J<7> " " j"*\ 3 L
*``xe`vYI*6eXxg
w*  *5 (*'&  #- &
&* @78<'5gNg2  J<', 0.YR-*I0\=

7S

"* +7 ` 7-[7 "

&*!%  "!- 07S ""*4 +7 6 7-[7 ",f + *(* !+ <'+'&`+ !7&
"2,. 0'8"
( 0 &* @7805 0!- "
+ &* @78<07.YR%I0'T  * " 874 &
 !- 01"!%9*#- &0\=\ &*!-  "!- 0
0#-!+'&
54 "  "!Q *% *  5*
!"
2ZI0'<05Ye x8(* "!% & !%' "!&
0"25(
0!I+ "2 7I0'
&007! <"* <'0'=\8(& " 2+,f % &**  <0,&6025(
0!I+ "2 
I0,&074
&** "` 
<* &
0'0! <"* "!M +9 &*!-  07U'( 0!eR%"2,( 0W 
-   <' <J<&02,( 07!I "2  0'
(!% 
 '<' 4 "
+"!- 0!:2%7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4
F+ 6 -[ 
7? % " <'El@q6v6Xe\$y gv` y 
\ &* 
(&* #: &
,8<" (* "!+0&* 7 <'0,&
"2,. , %!+ 
6#+0"!:2 '&* @4<""
%!+0<5"
%*`+-8 "(*'&* #% & <0\=
@4qv``R?Fgq6Yg`

u EqXXv6gqY6$uwF|6eXexevX
w
G07
-!- M*5" 0,& !:  !: 0> "`"( bF!% " # 0"!:2a *1'E=
k'24 !- 0<)8Z 0'<'0'J<7> *
F+*6I:[ 
gq6Y|`IuwFg6ewevgq{|`IuwFg6eeg
w*  *" *0<0,F+7
6 :8 7*
<'0,7 & !%' '&&* @74<', 4S 6"([!:  "!- 07

7S

 "*h *8F |+% 3 %YM


_* <*%&
&* @4<5 5 
 "!+
'&&* @74<'"`[ *8 |I7- &0' 5!%1 @E4'( '&* #- & <' *
a & W( 0'* . &0E 8&* 
8<'"& !-  "!- 0<'
 7S ""*h *8F |+ 3 %YM8MJ<'

7S

 "*h *8F |+% 3 L' O=


\( 0 .' 3" N|2 I'(*&* #- &
<'05+"!  & &* 07 &07'; 0" 278<5  &6% * '&* @
<XV[  8F |# 0!-2 7.'!%* *2
 ,35*0
 <'+'&` '< 7='F &  0W6

'&&* 07*  8&60E < &* 07 J<
 7> "" 
B *JF g+- 3 %Y M`<

7S

"*h *8F |+%

3 L' O=

k'2 "!- 0<,B07 %!-*&6 07!+J<"7> 4h 8F g 7-

-YM

7? % " <'El@q6v6Xe\$y gv` y 


\ &* 
(&* #: &
,8<" (* "!+0, W(!- 2!% W 
 "! 
'&
&  @4<6h *JF g+- &0
 0'N|2  J( '&  #- &
<'0''=
@4qv``R?F\y vF' q |`Iu E

Y $ I exejgv`6y 
G07
-!- M*5" 0,& !:  !: 0> "`"'( 'j%! M=
k'2 "!- 0<')4Z* 0'<'0'J<7S " " 
B *8 g -

%YM

*6exe`v$*6eXxXY|
w* " , '( '&  #- &
'&  @8<,gNg2  J<',6+0.YR-* 0E=
7S

"*h *8F |+%

3 L'

k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  4h 8F g 7-

3 L'

7? % " <'El@q6v6Xe\$y gv` y 


\ ,[ 
8(*'&* #- & ,8< ( "!+0, 5(!- 2"!% < &
&* @EJ<"5CVh 
8( |# 0!-2 3"
<XR- <"5 
 ! *'&&* 0E "!7&0"
gNg2  (*'&  #- &
<'0\=6b "2. Z(<" "!
S 6"(  Vh  8F *|#+0"!:25F
%!IM"=
@4qv``R?F\y vF' q |`Iu E

es y |I*eYxej|ve6y `
G07
-!- M*5" 0,& !:  !: 0> "`"'( 'E? Q=
k'2 "!- 0<')4Z* 0'<'0'J<7S "" 
B 8 |I-

3 L'

*6exe`v$`eXxXg
w* '" , '( '&* #- & '&  @8<,gNg2 +J<',6+0.R%* 0

7>

"G7  % EG",*' + 

VG "!- 0'J0".R%

'0 S 6([!- +!+07('<4&60725(


0E !E"J
0 0> "6""(G07 < % 0
*
7
<0W J&* *%!+0&* *(!%*"
+ < 84+  &
&* @7='_ (!- 24"!% J<'0'J&*  
(*"!-2 +" &0"25(*0 &* @78<5;S 6"(G0E <" - 07J< <"," &
0" &
&* @7J<"0.R%I0
S 6"(*[!:  "!- 0E43" 07 @1 &
"27 8hG<W w<R:+0'U!+'(*'&`-  2
 E=
 "!+&
"! 0M8 1 
 (*"!-2  " &02,( 0 &* @74<',eR%2,( !+8<5 J<0(!- 2!+ 
&* 
8"407.YR-*I0S 6"(*B0E
< - 07298&025( eR+0'=
7S "6
k'2 "!- 0<,B07 %!-*&6 07!+J<"7>  [*
7? % " <'El@q6v6Xe7`Xx6y Iy 6
\ &* 
(&* #: &
&*  3"' "!\f'2!+0<"&*!-  !- 0J<"<" ( !+0,3* 0 hw
R:
I0J<"4# 0"!:2 5 @1" & E=
@4qv``

x6 @q6v6Xe\$y gv` y 6q ~6x6y |y Y{


G07
-!- M*5" )*  &0*<" &  @;S 6"(` <\=

7S

"*4

k'2 "!- 0<,B07  &`%!:*&6 0!%J<"W7S  *4


7? % " <'El@q6v6Xe7`Xx6y Iy 6
\ &* 
(&* #: &
&*  3"' "!+Wf'2! 0,<'&!-  "!- 0'J<'< ( "!+0,3"
07 - 
R:
I0J<"4# 0"!:2 5 @1" & E=
@4qv``

x6 @q6v6Xe\$y gv` y 6q ~6x6y |y Y{


G07
-!- M*5" )*  &0*<" &  @;S 6"( !O=

7S

"6 "%4

k'2 "!- 0<,B07  &`%!:*&6 0!%J<"W7S 6  4


7? % " <'El@q6v6Xe7`Xx6y Iy 6
\ &* 
(&* #: &
&*  3"' "!\f'2!+0<"&*!-  !- 0J<"<" ( !+0S 6"( !E3
0E
[j*R: 08<8#%0"!-2 W @'1" & E=
@4qv``

x?\l?F@4qv6eq?FY 6~6x6y $y Y{


G07
-!- M*5" )*  &0*<" &  @;> "6"(` < # ! '=

7S

"*4+| 

k'2 "!- 0<,B07  &`%!:*&6 0!%J<"W7S *4+|[*'


7? % " <'El@q6v6Xe7`Xx6y Iy 6
\ &* 
(&* #: &
&*  3"' "!\f'2!+0<"&*!-  !- 0J<"<" ( !+0S 6"(`T
<53

0 % wR:'
I0'8<'4#+0!:2 , @1 &
7=
@4qv``R?FG?/

Y xe @q6v6e x 6~6Xx`y $y {{


G07
-!- M*5" )*  &0*<" &  @;> "6"( ! #|
<''=
          & $     &       8      $          %    /  $   (       

i 6+  52402"


 0EU "6(*'&`+ '<0!\a , '<'0," 5 0&   V* &* @7T#: R% &0"*
w
0!- + '&* @7T#: R% E= ( 0<"!\20* "!7(*'&6 <'0!E* &
( &* < <W 2(*0"!  
 ,"
2*&a 4 (  &
&* 07 8<5 0'J1"!%9*#- &60'8[=

*  78& 7(* V8<5240* !
(&6 '<'0!O='& a0Wa M4&   4 %   + !- J< * * ,73"5 2,( 27
 4+
#- &* 07   <' <E=
_* W7 17!+ "KQ52%!% W ,!+ "2 1"!%9*#- &
5.*9 &
W(* "!% 5' !  0  !I% "6<'  ,[=
F46+ 8#: 1!% 7U
 &07
 <!% , W( + *# 0!:24 <, 4  * @4%+7 6 7-W=
k`
& "2,. ,
%!+  `#+0!-2 &* @7'U"6*#+&I0,240 !QU*05!%0!- 7+ "!QU 0, "2. U* (*&6+ <'0!O=6 07U
( 0'<"240T "!736<"  "]*05.9 &0<5 5* '1' '&  @78<"` &* <'0,J* 2,( 7l

a & 20'83"540".R% 0} 7& "2. , %!+ " 6#+0"!:2 '&  @4<, 4  6+ <"5
(  #+0!-2 ,!+(+  , 0240  2 "
 0'J<'072 %=
\ <  "]*0 2( 8*? &6+ "2%" 280<0,<%!% . XR%0<5 8&   '4 %   + !- J<
 '&* <'0,<  [=/0!"('*6+0W(*0<7!QN "204&0 6-!: !\6-!+0W(!+0E( 0
&0"25( 0"!I+ "2 7I0<"W*  *1 '&  @4<` '&  <0E=' !+I0<+ 
'&&* @E4 ?"(  &
&6@240
 %   V* !\ J&*  J<5 ) * 1 '&* @78<` '&  <0<  [=

Z478w*''4  EB *
/0'<"!QNg 
"!73"W(*7
 !% 20'J3*)*&   !7 &
&
 0, , 0J17!-( 0'J<"0.R%I0
%*`+-<5 W( * *# 0!-2  17 #- &  .  <'07* "!E 5
%   <' <W , 7G' "+
\=k 
"2. !%1'0EU ' EB  EU
M 8&
  4!% '&* 07* < U'(! 0E( 0!+&* 07* '
&0"2,.' * &* @78<W24Z 0'<'0'(* "!%  ? %!% '"!760".R% 0h *8 | -8F%*`I:W=0"!\ 0
  07U(
0<'240;+*"!/6-!+0W , 7B' *
M* 1 "!74Z` "2.' Z"
\(*&N #- & "2
 U  1 
 5N|*' <"&@<" 1'0, ? %!% ',6h *8F |+%8F%*`+-<
80.YR-*+0<"k 2,( 7cB "! 
7U*E=
gq6|6$uwF|`eFre{GX`t ev Ey v{jy 
 q 6IuGg%t ev Ey vj qY 6$ujgq6$ug-

F '7+4

%", 0/Mw*' " :/*' 7

\T#+9'&*  
-   V "!E &*  <'5
-   <' <%Mw $7:"* 7',(!+0'1!% 2 < 
7[=\  &
&* @78<"2,%!% "
*
0<", &   4*(!+017!+ 2 <"XR-25( 0<'
AMw ' 1" *I0!|('(= R% *  =j86+W(! 01"!% "2 5(*0<"20'T *"!73"5 0'(* 
0'*&  "!: 0
(* "!+ W*
"!E &*  0
 F% Mw*' "* :*' 7"
0
7 &* " 2+5 <Z7% &60'8 5 0';<"
*
!&* " 3" !7&   <&0"25( 0!I 2 I0\=_ 0(*  0'( "!% ,** !

M'*' "I7:/ " ,!+2" * 1"  5   7=
1. crear un objeto KeyNavigatorBehavior, seleccionado el grupo de transformacin
2. aadir el objeto KeyNavigatorBehavior al escenario grfico
3. proporcionar unos lmites (o BoundingLeaf) para el objeto KeyNavigatorBehavior

G0240,&* " 3" !(!+0. "2 <W('! 0'1!% 2 '&  @Ua *M* 4  "!- <" <,<,2 *"!% J<"
 2,( "2
 !\ 0'(* 
0'8<'6+ 5!%'&+ E=cB4 '&
"!+& 2 +0 *&607!:(*0"!% "!6+0(* 
0
4" 24ZI0<0,<'~Ygveqgv ~{v`v`Fgqe
= !+ 127 0<",B@< 104"KQ 2,*'6-!+ 5 0(*  0'
<, 5!%&
*%  '1"f" 5 2,( 2+ '&* @,(* "!+ ," (! 0'1!% "2 <"XR-2,( 0,<'
AMw ' 1" *I0!|('(= R% *  =
Fragmento de Cdigo 4-5, usar la clase KeyNavigatorBehavior (parte 1)

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX y uGX v`y rv6{v

  Egveqv|XvBge6`|vBegq~j6gqX
t
zt
*|q`6IuFg6eFrXYgq6jh`e
t
|q6X~YXFg6`j6Op `[YvYDgqY~XFg6eeg%
t
t
t
6Op eIt qexex6Eey x6|~Ygveqv
Yq`Xx6g$-
 t
 ~Y|vXq|vYIv`{~{v6YvG6gq6ew~{v
 t
  t
e t
t regq6YwX`t `vY Ey vYFy 
 q g6$uGg%t Xv Ey vYj qY6$ujgq66$u|%
zt $gq6YX qv t Yv|  t  I  t zYI  t  -\  
zBuwvv66v vrYq$y 
t *z6Et {vX*|q6 qX$y e $gq6YX qgvX-^  6{vqX||q` q$y 6
t regq6Yet {vYg*|q6Yg6$uG*z6"%^   {vexj|6
y ey |y q6XXXy $y 6
*v qYrey Xq|` vqrXy 6$ rX*|q6Y{%
t v "qXrXy `q6 v6Xqrey 6 v "qr`*v`G[YvY

t
 t
 t

v qXre*v66t {v ~Yvex6e y *Xxe$XvY}6ex6y  ev6gv6


YvYD*6y {|zXx`|%  q t  $%
6Lp eY t qexexe/Xy x` v qXrev`%

 t
 t *Yv6{qrYqBz6Xv6 6IuD`{Iy uGy {qYIy 6|`y Y~v6v6gqe6t
e t 6Lp eY t ~uey v`|%
zt
X t |vY$e$w6Op `I
t  v6xGY
\gveqY|v ~vv`F|q`eGuwvY$exG& v qXrXy Xqg` e
*_ eR%'&**&* @EJ<"*(* 
0 n<"5 5!+&  4"
2Z 0<0<~Ygv`qv ~{v6vejgqe!%'3" "!%
'&&
 0, 61!:'(*0<%!% 7
6# 0!:2 &* @EJ<"h *8F |+-W='\6+  2,( 2  '&  @( * 
0.YR-*I0WB' EB " N|* 5<" 7!+ 12" I0<',B@<" 1'0K: \ "
2ZI0<0
~Ygveqgv ~vv`Fgq6`[3"5 0)a* '&
< ( 07 . 5( !- 4+"!E &
& 0 5 4-!+  `#%0"!-2 '&  @4<'
h 8F *$ :  5 N$ ' Dn`C,<'" 7!+ 12"
 0<,B@'<" 1'0KO =
  !7"60".R%I0W , B' 
, "2ZI0<0<~Ygveqv ~v6Xv`Fgq6e;( !-2   '&&
<"!7
0%!+ J& "!% &6 "!QN % &
J<5 5!+ "2 17!+9 #: &
<"5 4 '  <'5 ' EB *" 7U
 " 8&0280
F 'g+-;'-Y M'U
h
T|w QU 0< 1!%1" !\5/7*" 7**7 , 5!+ "2 1!%9 #- &

<, 4  6+ 7=
_* ,gN|*' Wn6 n`<'" !+ '1"2
I0,<"G@<" 10"KQ (!+0E(
0!+&* 07 "* W(*0' &  @7  &  
(* "!+ ,"6(*&6+ <'0!O='F &  07U*(&6 '<'0!" ,2, , ," )( 0 &  @74oU 
2*-!+0J
0.'!%60!- 14<'" 2"
<0  !I% |=\I0,J
0 "2%," )( 0 &  @7  &* " UM
<W  1* 52 ""!% ,  2 + , W(
0'* &  @;#- %'!+ 05 0!- 
 &* @E8<"6(*&`+ <0"!O=
Fragmento de Cdigo 4-6, usar la clase KeyNavigatorBehavior (parte 2)

` tDeee y ~# v qXrey eqg6 eX|


t {vYIYq 6{|$XvYD 6gx`v6IYq 6{||$%
 t q{rqXYz6~q6{rqXz6[vY)7q6{rYqeYz6$`e %
 t qexex6g+7v6|v6g:{~q6{rqeYz`"%
zt
z t   y u` v7ey rYv`|{vhy FqB{rYv6ey v6X~vh'$y y ~Y qX{
z t y uGe v`y rYv6Yvy uGe v[vY y u` v6Eey rYv6gYv6g~q6{rYqez6%
zezt
z t lRGR+q|GR;;GlRR O1lqq+1 #q e

zt
zt

 y ue v6\t q`xexgq6X~YXjgq6XeY~v6XvX-


z t  v6xGY&v qYrey `qY|6 eGg~Y|I~g6|
Z478W[+"\4[ 475B *% 65"4B, 7I  " I
G0240,&074&* " 3" !70.R%I0,&6072,( 0!I+ "2 "
 0EU "`0.YR-*I0M"w*' 'I7:/"*  9

0" 0 '&6% *0,&  "*<'0 gNg2   
 "! 
'&
&  0 "&0e *0" 27J<" &6%  '&  @8<"5
h 8F *$ :5='\I0)(<"+ "!\( !I% &* "!-2
 5  2  <0)(* "!+ W'4&
02,(*0"!I+ "2  0
<W* '1' '&  @7U
<'07*<',"6&0"2,(*0"!I% 2 +0<".* 2,(!%, "!7 &6% * <0\=F B ('N %' 0
 <" 
&*  W' 0 &  @74  )(!+0".' 24 W*
7
<0W5/7*"
E*'*O=
[ '
'W%Mw $Q"* 7MU/Mw*' "I
*_ 5 %   < <<"W* * 1 '&  @4<` '&  <0 5 2,( 247+ &07280,<'08&*  '=F4"
% 2,( 0<,XR-&**&* @Ea M8<'0'J0.R%I0=F (!- 2"!"07.YR%I05J"60".R%I0

M'*' "I7:/ EQU "` 1"
<0'40.YR-I
0  Mw' "$7L=_ 
17'*< &*  
 0*<'0&*'2
 , 3N
M* 3*)6"*(! 0'1!+ 2 <0"!/&*  +<.*7J* "."!73
*? 6+, 
1 < &  *5807.YR-* 0E=
60".R%I
0  M'w' "I7- \!+ "  V I0'<'  T#-'*&* 07*;:N|( &
J<"," &*  <"
&0"25( 0"!I+ "2 7I0EU* ?&
7( 035  "24  "`0.YR-* 
0  Mw*' "I/( "!% ,!%' "  V* "!E 4#- &* @
<eg`~ve{ $y ue Y6='_ &* 

 M'w' "I7I024 `z


7 3 
'M 0W(! 0"&
W. XR%0, "
 6<'W(' 
'&  0J<" &*   <"  <"  =_* b/ .  1' "
+52'6-!+  #%&6 0
<, (' 
'&* 0;<" '&    < ' <" " = % Mw IE 2,( "247+ " 280 ' 2 I0
&0 '&" "!% &* @7=
80* ' 2 "
I08<

 % Mw 'I7:* 7
Tecla

Movimiento

Movimiento Alt-tecla

<-

rotar a la izquierda

traslacin lateral izquierda

->

rotar a la derecha

traslacin lateral derecha

mover hacia adelante

mover hacia atrs

PgUp rotar arriba

translacin hacia arriba

PgDn rotar abajo

translacin hacia abajo

aumenta la distancia de salto (y vuelve al origen)

reduce la distancia de salto

vuelve al centro del universo

k'2 "!- 0<,B07 %!-*&6 07!+J<"


%Mw $7:/"* 
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et v X Xq6gx
7? % " <'El*v6YqXrey 6
\ &* 
8
7*&    0,&0"2,(*0"!I% 2 +03*W  *0'&
M'w' 'I/(* !+
240'< #: &
!\ %!+ 
6# 0!-2 &* @7J<5 4 '  <5 W(  #+0!-2 7=
*v

"qrXy eqY|6I vqXry 6$ggqYg6$uwF|`eFgq`|ev 


G07
-!- M*5" 0,&02,( 0!I+ 2 
I0<W* * 1" &* @7,(
07! '&  <0,3"0E( !+  0".!+
"`1!-( 0,<'%!% 7
6# 0!:2 '&* @74(*'&* #- & <0\=
k'2 "!- 0<)4Z* 0'<'0'J<
M'*' I7:" 
rYy xhy ey $y q y {v6g
kF0.!%'
&!- ., 2Z*I0<'0W % "  V*<'}* 7E(* !% &07#- 1'!+ "!E 08&*!- +!- 0J<"
< ( "!+0E=
rYy xBeg`~{vX{ $y ue Y p|qXrYqt $y t E eXuwv6gqIy 6w~Y$y gv6$y qX
kF0.!%'
&!- ., 2Z*I0<'0% 2' *J<'} \( "!% 52 *eR% "!"6* "
 0E=
        '        $                    #   /  

*( '3" <'&


0"25(
0!I+ "2  0'J<5!% I@7 ~{6uht Y`6t pIzXxt Y|y et v6qrey `|et uwYv`/&60E- "
 8&* 
J<'"6&02,( 0!I+ 2 +0, 8&   4"
!+ I@E8
5 %   V* &02805%!- <" <"
 # 0!-2 &* @E(* "!% 5 5 
 !- &
&  @4&07 0'J0.R%I0T  *  ='| &*  M *<0) 8&   (* !-
%!+  '&  0 20  Z"*<'0'
,,( "*0W( !-   0, 5 W( '& <", 5 2 1""*U 6#%0'&
*<0
3*52,** 5a &*  %!%9'TM4 <'" 7+U
M 0'J0".R%I0T '   435! 0% 4!+('*+
5 0'240* ' 2  08< !% * @7"=

_*  1"' 


 + ". 5!%'25 ;%!+8&   4(&N #: &
J<&0"25(
07!I 2 "
I0,< !+ *+@
 *&* ' < 84" (* '3"* \=eB<'"2498<',6+ ;%!%4&   U* 95 &* 
 . %!+ '&`%
8 * OUM4"6 "!$#+ '& 0
 47* B"  f =/6+ &*   ".*6%!- &6 M4  
 "!$#+ &

 5
%   V 4 &*!+' '&  @4<, 8&*  4(&'N #- & J<'"&602,( 0!I 2 "
I0<"
!% *I@EJM

0f %  (* !+ &!+' "!&
0"25( 0"!I% 2 7 0(!  07*   V* <0J<" !+ I@7"=
k'2 "!- 0<5 8&   4(Z'&  #- &
J<

 87* "* 7
Clase
MouseBehavior

Accin en Respuesta a la Accin del


Ratn

Accin del ratn

MouseRotate

rota el objeto visual sin moverlo

botn izquierdo pulsado con


movimiento del ratn

MouseTranslate

translada el objeto visual en un plano


paralelo al plato de imagen

boton derecho pulsado con


movimiento del ratn

MouseZoom

translada el objeto visual en un plano


orthogonal al plato de imagen

botn central pulsado con


movimiento del ratn

j
E 4h ' ;",7, 7I  " I"wk4E
*_ &*  8<"&02,( 0!  "2 
I04(&N #: &0J<" !+ * @8
07;#+9'&   J<'W* "!Q 

7 &* " 2+5 052 *240,3",6<'0%!% 8&*  J<&072(*0"! + 2 
 0=_* * 1"' 7+
   5!+"(!%*+ 5 ,!+'&  W(* "!+ W*
!- 'l
1.
2.
3.
4.
5.

proporcionar capacidades de lectura y escritura para el transformGroup fuente


crear uno bjeto MouseBehavior
seleccionar el transformGroup fuente
proporcionar unos lmites (o BoundingLeaf) para el objeto MouseBehavior
aadir el objeto MouseBehavior al escenario grfico

0240,&074 " 17' J0%!% 4!%& *+ 'U 0( 


0*0%  743" "!E!%   V <0878"
G
0!+<'78< <'0\=*(* 
0<0'; <.*5!%   V* !7 "
+;<"`%!%'U
<&** -! 0EU
M8<'"&  &07 0'
0%! 0'(*  0'J
)('<'7!+' "  V* "!4&* " 3" !70! <"""=6b "2.' ZU 0(*  0';<0;MJ-!+
 W(<""4&
0"2.* "!\
 <'0)4&07 6-!-*&6 0!"<7 #+"!+"
+E=
 !+ 1247 0<,B@'< 1'0"K (!-*"
+  2Z*+0<0~Ygv`qv ~v`Xv`Fgq6e[<"*(! 01"!% "2 <"
eR%"2( 0,< 407  w0+  
('("= R% *  =' &* !- 01!+9 #: &05 &*  M*"60".XR%I0
G7 7%['E=  * "!- 0)(<5!+0 !*G7 7%[W  "*<05"
!+ I@EJ<". <'0, ,
 *&* ** @8<540".R%I
0 J7* Ej I,8"6 &* "!- 017!+9 #: &0E=

Fragmento de Cdigo 4-7, usar la clase de utilidad MouseRotate

teee y ~F~Y qX{  6{v gqv ewvsgv6XxX `e v`


t
zt
eee y ~jgqX~{Xjg6Xw~Y|vXq|v ~v6v`F|q``eg

 \gv`qvj$vB|eX$XvBegq6~Yw6gq6`
t
gq~YXF|`ew6Lp eY
hXvYgq6X~Yjg6`X|%
t
t
t
|q66$uwF|``w6Op qgvBhvW*gq66$ujg6eX|%
6Lp Y|qv
t {vXg7q`Xq6ey y |*|q`6IuFg6e`t `1 ?J@NBY  ? F BG@ E E -
 t
6Lp Y|qv
t {vXg7q`Xq6ey y |*|q`6IuFg6e`t `1 ?J@NBY  ? F B FE -
 t
 t
6Lp e t q`xXx`/Xy xg6Op qgve%
e t
6Lp Y|qv
t qex`xe\`y x`IYv) `$E`v`  t I%
t
zt
t
 YYv gqvhu  `{v qgvhhYv  YYv Ygqgv6g%
u  YYv gqv
t {vgqYg6$uwjg6eeg6Op gqve%
t
u  YYv gqv
t {v ~vXxe y X6*exX$XvY*6`Yxy Y XXv6gv6g$-
t
6Lp e t q`xXx`/Xy x$u  `{v qgve-
t
  t
  v6{qrYqBz6Xv66$uD`{Iy uGy {qYIy 6|`y {~{v`vG6gq6`6t
  t
6Lp e t ~6uGey v`$%
t

 t
gv$XIw6Op `I
e t
zt  v6xGY
\gveqY|v ~vv`F|q`eGuwvY$exG  6v Ygqv `
_* ,2 *2 W!+&  4#-*&* 07* "!%95( "!% , J0%!+ 8&   8<&025(
07!I "2  I0<'"
!% * @7='
a&a 0W 0;%!%8&6025( 0!I+ "2 "
 0'J
)(<7 -   V* "!" ,2 *2  "(  & '&  @43
#- &* 07  2 2800.YR-*I0 '  "g=FI0,3"&
< 5" 0<5 08&02,(*0"!I 2 I0'
< !+ *+@ ',%+7 6 7%#-"
 , "
+;<" &*!: .' !- 07U @ 0 5*&
*  W'40.YR% 0
%*`+-8 " *&   
0,&60EJ%!+8&02,( 0!I+ 2 "
 0J<"5!+ *+@"=*(!+0'17!+ 2 <"
eR%"2( 0,< 407  w0+  
('("= R% *  a &  (" 8
0\=
6* 1 
 XR-"2,( 0W2%!% &@240,<0'8&025( 0!I 2 "
I0J<"
!+ I@7J-!+ ". XR- 47"

0" 052"
<0  !I% g=' (!+0'1!% 2 40"* 7w0+ *+C T(("= R% *  <XR-25( 0,&*!+' 5

&
* !- 01"!%9*#- &60,&078<'080.YR% 0'G %[5 0R: 0, "60%! 0,74 2 <'0 ' !I% |=
B < 5" 0<5 0'G7 %[';+ "*580.R%I
0 8
Ej+  0&* <05 Z|=FI0

3" "2.0J07.YR-*I0'J<,&0"25( 0"!I+ "2 7I0<" !+  @6+94 &6% 0''U &*  <'05   "!- 0
a & &   &TM2** *"
!+ I@7'U* "2.0G7 7%['! 0 =
k*
0,3" * !+ "2083 "2.*080.YR-* 0! 0+ !+ 7Ua *M8<0J
0" *&* 0E 'l7ne& "2. !\
( 0 &* @78<"6('&` '<07!QU 0&
"2.' "!E 0N|2  ;<'"6&0"25( 0!I+ 2 7 07U <5240'<0,3"

0" 27 W8&
02,( 0!I+ 2 +0
6%Z '&6% *07U 0,C * !\2&
 240,<'  '&
&  @7
(* "!+ , "  "!&0"2,(*0"!I 2 I0\=
*" IT""G, 7I

" 
I,'"*wY47

_* 8&* 
4'( '&N #- & 8<'&02,( 0!I+ "2  0<"" !+ * @ 4 7j'  7U
8 %**  EUU
M 87* % {/'77
04 ?  7
 07J<5 &*   . %!- &6
8 * 75 2,( 2+   
 "!$#+ &

 4
"B  & =
,[  4h6%% 0
8"
7" 
\ &* 
 ". %!% '&`%  W(!%*"
+  '3"N*4"6 *+03<*' "2404 2,(  !- 0)( "!%

&*!- .' !\' &   )( ! 
07* "  V <&6072(*0!I+ 2 "
 0<"
!+ I@E=' 24ZI0'<0
vYg*|q`|`IuwFg6eeg(! 07.* . 2+"
f &6053"5 %   V* !+9 0'4** !- 0'J<'W'
eR%"2( !"<"0
 87* *' 7O=_ 0J0%!+0'2Z* 0<0'J &*!+' "!+@E( !% , 0'8 "
I07!+8<'5 
&* 
J<'&
0"25( 0!I "2  0'(*"!  0   V* <'08< !+  @"=
k'2 "!- 0<)4Z* 0'<'0'J<
8  
_* &*  5.  )( "!% I0<'0' 0'42 7(' <'0!%8<5!% *I@E (<T ! 8
Ej+IM
8 %
{\ ( "!+ eR%"2,( 0
=
rYy xhy ey $y q y {v6g
g &* "  V "6&0"2,( 0"!I% 2,  0E=
rYy xBeg`~{vX{  6Y{v E rv6{| p|qrYq
t qYEIt vrYv6{It  {Yv E r{v6Yvrg
4 *XR-  
I0'J<"
!+  @7=
rYy xBeg`~{vX{ $y ue Y p|qXrYqt $y t E eXuwv6gqIy 6w~Y$y gv6$y qX
b\0'<0 0'2  ( '<'0!%J<5!+  @4<"." 2,( "2% !+524Z 0'<'0,<)"*' 7
( !+ W!+( 07*<"! 5 086% 2 0
=
rYy x{vgqYg6$uwjg6ee|q6Y6$uwjg6e$gq6g6$uwF|`e
kj" '&&* 07* "ebF!+ 
6#+0"!Q28! 07'(,(* "!+ ,"6&0"2,(*0!I+ 2 +0E=

rYy xFq6v6eeg
G (* !% 52 '  27+"6&02(*0"! + 2 "
 0E=
"g

 $+ H 8
"B"  &
cB* &* *3", 2,( "2"
+  5 
 !$#+ V,(!+07( 0!+&* 0   2Z* 0'<'0$gq6Yg`IuwEXq6evex
3" "!+95  2 '<0,&* 7 <'0& "2.' "6-+*`+- #-+<", 524 7 !+ ,( '&* #- & <' E=
B < 5" 0<5 0';%!+8&025(
0!I+ "2 
I0'8'(*'&N #- &0';<"
!+ I@7 2,( 2"
+ 
&* 
E=cB('! 0'1!% "2 <'0! 2,( "24%5('*'<5!+25( V "!7"
2ZI0'<'0|gqYg6$uw\Xq``vex
<5* <"* 8&* 
( !+ ,(*'&* #- & "!E2ZI0'<'0,3" 5  2 "!+9&* "*<0*
240'< #: 3%+7 6 7-)=
k'2 "!- 0<)4Z* 0'<'0'J<""|
$+ H
87*
"*' 7%B  &
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et uj6{v
rYy xj$gqY|6$uw\q6XXvex6Iy {e v
{gq6Yg` uwz6;$gqYg6Iuj
_* 8&* 
43"5 2,( 2+  5 
 "!$#% &
,3
5!%1" 6-!+ 4&07
8 * +; "!+9  2 < 8& '<' 4 *V43*,"6&0"2,(*0"!I% 2  '&6%   &

%*`+-)=X% ( 0 0,<'

 4
"B"  & gwT 3 U
8 B  &
0 8
"B"  & {/JW
W=
jwG 3 U

[ '
'

* m - ;",G, 7I  " I;)wY47

8 7j'


cB4 & " !- 0,1"!%9*#- &0,3"5 *&  
M*W'40.YR% 0 4
Ej' *+W(*!-2  3   "!- 0
! 0 0".R% 0' '   878" 2"
<0  !I% |=_ 0(! 0'1!% 2 J<XR-25( 0
8 7j'  '
U 8
Ej'   ['"UP
M 87 "*' 7|8<2%!+   
0<
6+ &*  7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"
87* Ej+*
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et uj6{v

7? % " <'El  6{v*v6XqYrey 


0* w0 *%'40.R-*I0<&02,( 07!I 2 
I0<  E3*<XR% , 5 0'  !- 0
8
&0
%!+0 "!E 5! 0+ '&  @4<'W80.R%I0W2'<" "
 W W('  &* @78<"
.*0+@ V*3' "!+<0<"
!+ I@E= !% 5 %   V* !7 5
-   < <EU'(!- 2!%0&*!%' "240"4F+7 6 7-8 74
0".'!+,3"
07(*"!% !%96%&02,( 0!  "2 
I0E='  * !- 0)('<'5!+0 "!7&  " 3' "!0.YR-* 0Wa' R%0<
%*`+-8 "J#-"
+7=
6 {v qgv6g
[!+ 54&02,( 0!I 2 " I0W240* 7j0+ *+5(*0"!7<'#+'&` 0E=
 6{v qgv6gqYg6$uwF$`e$gq{g`IuwFg6`
[!+ 54&02,( 0!I 2 "*<'0< *<05"e-!+ " `#+0!-21!+0""(=
 6{v qgv6$y `$ qee
[!+ 54&02,( 0!I 2 " I0,&0 . 7
<"!- J " &
&  0* < 'U <'0E
<", .  <"!% 

0"l


MouseBehavior.INVERT_INPUT. Invierte la entradas.


MouseBehavior.MANUAL_WAKEUP. Dispara manualmente el comportamiento.

k'2 "!- 0<)4Z* 0'<'0'J<


8 7j' +
rYy x{vY`q`~g6$gxe6`X vwgqe~g6|
kj" '&&* 07* "X#% &6I0!E2, % (  & <0!\( !- , 020* ' 2 "
I0'J7 0'8XR%;sh "X   0"!
+ I
rYy x{vY `q`~g6$gxe6`X vws `qe~g`+xeee v `qe~g6g
kj" '&&* 07* "X#% &6I0!E2, % (  & <0!\( !- , 020* ' 2 "
I0'J7 0'8XR-;sh 5 0'
  0"!+N
 L " I77
 M  I7\!+( '&`-  2
 E=
rYy x{v$eXq q`~  6Y{v
*v`Xqrey 6|7q6 q`~\~{q6 qe~
 2Z* 0<'0,3" 5  "2 & '<' 4 *V43** '&6-* "  V "e%!% " `#+0!-21!+0""(
rYy xj$gqY|6$uw\q6XXvex6ggqYg6$uwz68|gq66$uj
_ 0** !- 0('<780.'!+
&*!- .' !7 52Z*I0<053"  "2 <'0& < 4 *V43
&0"25( 0"!I+ "2 7I0, '&`:* "  V* `%!+  `# 0!:241!+0(='_ 5 2,( "27+ &* @7( 0!7<'*#+'&`+0W*0
a & W* '<' E=

8 %** 

cB4 & " !- 0,1"!%9*#- &0,3"5 *&  


M*W'40".R% 0 4
+7 * I)(*!-2 +3""
** "!- 0
2*  0.YR-* 0T '  " '8"( 7 0)(* "!+ " " 05 5 W( &
<'5 5 2 1744 2 <'0
' !I-* "g=
k'2 "!- 0<,B07 %!-*&6 07!+J<"
87* +7 * I
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et uj6{v
7? % " <'El  6 {v*v6XqYrey 
0* *bF!%  * * '40.YR%I0,&
0"25(
07!I "2 7I0,< *  d3"5("!-2   5 0'
8
** !- 08&07
%!+0 "!E 4-!+  '&* @ TU GE<"580.R%I0W2< 7 5"240 ' 2 I0<
"!-!% %!%<" !+ I@74&074"
.*0 @78<"!%&*a0E=
6 {vXgqYX qgv6g
[!+ 54&02,( 0!I 2 " I0<5240  2 "
 0)( 0!"<" #%&6I0\=
 6{vXgqYX qgv6gqYg6$ujg6XF|gq6g6$uwF|`e
[!+ 54&02,( 0!I 2 " I0<5240  2 "
 0<  <0WJ%!+ 7
6# 0!:241! 07("=
 6{vXgqYX qgv6$y {e$ q`e{
[!+ 54&02,( 0!I 2 " I0<5240  2 "
 0,&07.* 7
<""!% 'U
<0*<5 . *<'!+ J 0"l


MouseBehavior.INVERT_INPUT. Invierte la entradas.


MouseBehavior.MANUAL_WAKEUP. Dispara manualmente el comportamiento.

k'2 "!- 0<)4Z* 0'<'0'J<


8 %** *
rYy x{vY`q`~g6$gxe6`X vwgqe~g6|
kj" '&&* 07* "X#% &6I0!E2, % (  & <0!\( !- , 020* ' 2 "
I0'J7 0'8XR%;sh "X   0"!
+ I
rYy x{vY `q`~g6$gxe6`X vws `qe~g`+xeee v `qe~g6g
kj" '&&* 07* "X#% &6I0!E2, % (  & <0!\( !- , 020* ' 2 "
I0'J7 0'8XR-;sh 5
 0'
  0"!+C
 *r  I7
 M " I/!+(*&6%  "247
 7=
rYy x{v$eXq q`~  6Y{v
*v`Xqrey 6|7q6 q`~\~{q6 qe~

 2Z* 0<'0,3" 5  "2 & '<' 4 *V43** '&6-* "  V "e%!% " `#+0!-21!+0""(
rYy xj$gqY|6$uw\q6XXvex6ggqYg6$uwz68|gq66$uj
_ 0** !- 0('<780.'!+ &*!- .' !7 52Z*I0<053"4  "2 <'0& < 4 *V43
&0"25( 0"!I+ "2 7I0, '&`:* "  V* `%!+  `# 0!:241!+0(='_ 5 2,( "27+ &* @7( 0!7<'*#+'&`+0W*0
a & W* '<' E=
8 %{\

c 4 & " !- 0,1"!%9*#- &0,3"5 *&  


M*W'40".R% 0 4
{\(*!:2   5 0* "!- 0'
B
240* "!"0.R%I0'T  *  4( *00"!I-a*0'107* "6 " ( I0<'5 24 '1'74"2" <'0
' !I-* "g=
k'2 "!- 0<,B07 %!-*&6 07!+J<"
87* {\
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et uj6{v
7? % " <'El  6 {v*v6XqYrey 
0* */0'07280.YR-* 0<"&6072,( 0!I+ 2 "
 0,
*  '73"W(*"!-2   W 0' * !- 0'
8
&0
%!+0 "!E %!%  '&  @744"6eR%!)4<","80.R%I0W2< "
+5"20  2 "
 0< "!:!+ 6%!-
< !+ *+@4&
0 .*0I@E&-!%  " IK%+&* 4" FS&04"
!+  @78<<0'. 0I07
=
6 {v1)*`6ug
[!+ 54&02,( 0!I 2 " I0<4V*0'02&07!% I@7(*0"!<*#+&6 0\=
v )*`6uggq6Yg6IuwFge$gq6Y|`IuwFg6e
 6{1
[!+ 54&02,( 0!I 2 " I0<4V*0'02<" "*<'0,`%!+  `#+0!-21"!+0("=
v )*`6u$y e$ qeX{
 6{1
[!+ 54&02,( 0!I 2 " I0<4V*0'02&07. "*<"!% 'U
<'07*<'5 .  <"!% J
0"l


MouseBehavior.INVERT_INPUT. Invierte la entradas.


MouseBehavior.MANUAL_WAKEUP. Dispara manualmente el comportamiento.

k'2 "!- 0<)4Z* 0'<'0'J<


8 %{\
rYy x{vY`q`~g6$gxe6`X vwgqe~g6|

k " '&&* 07* "X#% &6I0!E2, % (  & <0!"<" 240* ' 2 "
 007.!%"6eR%!) "X   0"!+ I7L=
j
rYy x{v$eXq q`~  6Y{v
*v`Xqrey 6|7q6 q`~\~{q6 qe~
 2Z* 0<'0,3" 5  "2 & '<' 4 *V43** '&6-* "  V "e%!% " `#+0!-21!+0""(
rYy xj$gqY|6$uw\q6XXvex6ggqYg6$uwz68|gq66$uj
_ 0** !- 0('<780.'!+ &*!- .' !7 52Z*I0<053"4  "2 <'0& < 4 *V43"
&0"25( 0"!I+ "2 7I0, '&`:* "  V* `%!+  `# 0!:241!+0(='_ 5 2,( "27+ &* @7( 0!7<'*#+'&`+0W*0
a & W* '<' E=
J7* Ew*' "+ 

*_ ;%!%8&*  8'(*'&N #- &


;<&6072,( 0!I+ "2 "
 0<" !+ * @78
W('<7
%   V "!\(* !%
&*!+' "!E" !  0  !I% "4"6&*  !+ I@8*5
%   &W(* !% 5 W 1" &* @7=*B '< 5*
<, 8&*  4(&N #- & J<"&602,( 0!I+ 2 "
 0,<'"
!+ I@EJ% *5"8&0E %!-&` 0"!73"
I02 58
0 0)( !%9"2*-!+0,7 "!+0)(* "!% 5 .  <"!% = [ "*<0*, %   V*
8 * Lk "| 3 F
9J"$BwF&0"240, "!+1'2+0 6%&0E
%!:&` 0"!QU*
&0"25( 0"!I+ "2 7I0<" !+  @!%( 07 <7 <" !+'&
&* @7J07( E=/6+&02,(*0"!I+ "2  0
  ! 
058 7(!+07( <'0}(* "!% & "2.' "!"-+*6 %
Vh  8F |# 0!-2W=/;<'&* !E 8&
  
<&6025(
07!I "2 
I0,<' !+ * @8 W('<'7
%   V
"!\( !% "6&07
%! 0* * '1' '&  07* |=
*(!+01!% 2 <eR%"2,( 0 80**w *  1 I07!|('("= R-  
%   V &

0J<"5 ;-!+8&* 

(&N #: &
J<&6025(
07!  "2 "
 0<" !+ *I@E(* "!% 5 5 
 "!+ &
&* @7 1" &* 0 g='
!% 12+0<",G@'< 1'0KQ 2%!%  2Z*I0<'0,~Ygveqv ~v6Xv`Fgq6e[<', W(!+017!+ 24
<XR-25( 0E=
6%*` 7-8 "J#-*
 W(* "!% &
'< 5 0,<'5 0'J0.R%I0'J<"6&0"2,(*0"!I% 2 +0<"
!+ I@E84q Vh  8 *$# 0"!:2-!+ " 6#+0"!-2W='60".R%I0) , 7B  *,'4 !%1"'27 0, "
2Z* 0'<0~Y|vXqXgv ~{v`v`F|q6`h<,20<053"
)('<' 74  & 7V* "!\ 0'J0".R% 08:+*` -<
Vh 
8j *$# 0"!:25=
Fragmento de Cdigo 4-8 ,Usar clases de Comportamientos del Ratn para
Navegacin Interactiva en un Mundo Virtual.

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX y uGX v`y rv6{v

  Egveqv|XvBge6`|vBegq~j6gqX
t
zt
|q6X~YXFg6`j6Op `[YvYDgqY~XFg6eeg%

t
t
t

*|q`6IuFg6eFrXYgq6jh`e
*6`x`y  ev6gvhuw`YYv*6eXxw[ee
t

rXYgq6jG6t `v Ey vy ' q g6$ug-t ev 7y vYF' q g`Iuj*|q`g`Iug%


t

6Op e It qexex6Eey x6$Xv{)76 6|E`v6  t $%


6Op e It qexex6Eey x6$Xv{ sXy gI%

t



 t
e t
t
zt
t
t
t
t
 t
 t

 t
 t
e t
zt
X t
t
` t
t
 t

uw6Y{v
*``xejhvY*Xxy X `v6gv6$XvY*y {gzex6g% R t  -
6Y{v gqY|vBu  6 Y{v Y|qvB[vY
 6YYv qXgv`  6YYv*v6qXrey 6 t  E B E' %
u  6Y{v gqY|v
t {vgq6Y|`IuwFg6eerX*gq6{%
u  6Y{v gqY|v
t {v ~vexX y 
exeYIuw6Y{v
*``xe-
6Op eIt qexex6Eey x6$u  YYv gqve%


6Y{vegq6YX qvhu  6{ve*gqYX qgvB[YvY


 6YYvX*|q6YX qY|v6  Y{vv`qXrXy 6+t  E' B 7' %
u  6Y{vegq{X qgv
t {vgqYg6$uwF|``e rX*|q6{%
u  6Y{vegq{X qgv
t {v ~Yvexe y *6eXxX$uw6{v*6exe{%
6Op eIt qexex6Eey x6$u  YYvXgq6 qve%


6Y{vR)*e6uPu   {{vR)e`u [v{


 6YYv1)*e6u  `{v
vqXry 6 t  E B \"
-
u  6Y{Rv )*e6uBt {vg*|q`g6IuwFg6eerXYgq6{%
u  6Y{Rv )*e6uBt {v ~vex6e y 
exXIuw`{v
6`xX{-
6Op eIt qexex6Eey x6$u  YY1v )*e6uw%


 t  YvY6{qXrYqBz6v6 g6Iu6{$y uGy Yq|y `F6$`y Y~{v6vG6gq6Xt


z  t 6Op eIt ~u`y v6g%
zt
z t gv$e$j6Lp X
zezt  v6xGY~Ygv`qv ~v6Xv`Fgq6eGujv|XexG  `{v"qrey eqg6 e
_ 080.YR-* 0'*7*'(* !+ 5 0J07.YR%I0'J<&02,( 0!I 2 I0J<5!+  @8*'( '&* #- & 
&0"20W5/7*"
"G*+,&607!+ < 0<"no'o'o52*%!+0'=
k"
** !: 0
  <'
6+ 6#%!% 7U 0J0.YR-* 0'8&0"2,( 0!I+ "2  0 <
'&`-  !%9=


  9   % 

F4" (! 0'1!% "2 <"eR%2,( 0 807 * * ' 1 *I07!$('(= R-  U 2.0J07.YR-*+0G7 -['
1 !+ 4!%'(6+   &&* 07 J<"
* "!- 0\=F46+  (  &
'&  @U*05a MT#+0"!-2 <
2  ( !\ 0'8& . 0'8<4# 0!-2  7(* "!% <" 7= F &
  1'  '&&* @7  <    * "!- 0W"*
# 0!-2 <5 
 "!% &6% !7&0780.R%*+0T ' * "   <  <"  4  &
* E=
F &   1  &
&* @7 \+9W 2,( 2+ <'0)(*0"!/'&0"25(
0!I+ "2 
I0%( & "2
 
< ( "!% <'0}(
07!* +0J<5.*0+0J<" !+ * @7"=F  " '&&* @78<580.YR-*I0 '  "U*
** !- 0* %f* " (''
+"!+0<"
!+ I@E807.!%"`0.YR-* 0" '1" <0M,('   .*0I@E8<"
!+ I@E=
60".R%I0}"* 7" < (* !+ )(
07!E W('  &* @E4<'+5.0I@EJM425( V* 5
07(*"!% &* @74<'* &
&  @=
kw5(! 0M*'&`+ 5!% *M*0<'7-!+0<""
2'*<'04 ' !I- "`<
<",
( 0 &* @78<" (
 ! 0<""
!+ I@E( !% " " &0 )(! 0M'&&* @7= kj&  &*' 5
 
 "!  &
&  @78<" W!+ M 0,&60E 0'J0".R% 0J<" 2 <'0 ' !I% |=F`0.YR-*$0 '  3
 
 "!  &
&  07*5298&
"!+&  *( *I0<"5 5 2 1""4 
" '&&* 0 5( !- , "!% '&&* @7=_*
 1"'!+ K{n'n826-!+ 5"!+ *M*0<  &
&* @7(!+0M*'&`+ <'0,72,'*<'0 ' !I% |=

F4 " 1 08& 


0 5 
+!+ '&
&  @7 0 Wa* '&
<7 !+'&`+ 2
+&07460.YR-*I0
  &
&* 0 <'0EU
  0&0E80.R%I05"&
2  0<"6 &7 "!- 0,1!%9 #: &05a 6 ,"
0.YR-*I0\=0!eR%"25( 07U* 6
" '&
&  0 !\80.R%I0}G -['W(* !% ,! 0+ '&  @U +0.R%I0
 0*52  ( U 
W2  ( "60.R%I0,F+7 6I7-4+"43"*5a *M8 0".!+
G7 7%[',"4*(* *%a4< &
 !- 01!+9*#- &0\=/0!"0%!+0W <'0EU
 0("!% &* @78<
  &
&* @8  &
&* 0E W807.YR-*I0 ' * "*( !+ ,3
)( 7 
@W4&
2,. 0<'&0" 0"!QU
 07 & 860.R%I0  * "`  &
&* 07 '<05!%'3""!: <'0E=

*_ <*%!-2* '&  @4<'"60.R%I0)(* "!% 5( 0' "!- 0"!(! 0&


* 2 +0W*0* 2,(!%
 "*&    7= kw
 80".R%I0  * "6&*f.' &0534 * ,  "!E!+0 '<056 9&02,(''6 0W( 07!"  
0.YR-*I0'GE>  <"  <"  GRQ'
I0,&078 " J0.YR-*I0'8F+7 6 7-8 U*&60240,4

&
* !- 01"!%9*#- &60<", ) 1!+ "K{neCEU*0,4"`0.YR-* 0j+*6 -4 7'4
0".'!%
0.YR-*I0WGE> "!  &
&* 07* <'0,3*) '&    !\280< #- & <0\=FT & '. 0 T`
5! 0+
( 0!\ 524  (' '&* @4<"60".R%I0,F+7 6 7-8 ""3a R+0<60".R%I0
F+7 '8 44 &
" !: 01!+9*#- &0\=/0!76+ 5!+ *V*@7U " !+  '<0,< " 1 
07(*"!% &* 07*J<  &
&* @74J<* 0 "!7*(* *%a< &
 !- 01!+9*#- &0)(* "!% *
( 0+"!- 0!\('! 0'& * "2 "
 0\=

*_ &
02,(! 07. '&  @4<'5
 "!  &
&* 07*8*'&
  52*&a*0& 9" &* 0E=/0"!\ 0  0EU
  &
&* @48&
"!% M8
 '*" 5298&
"!+ &
0 ,&0"2,( eR: < <,< & " 7='X[

* *
7S(!+07( 0!+&* 07* 4  "!- T#+0"!-2 ( !- 3*W(!+0'1!+ "2 '<'0!\('*'< 5  2 I "!E & 7- <' <
<& 9" &* 0!+   V* <'0( 0!\ 
" '&&* @"=cB 8#+0"!-2 5 2,( 0!I+ 
 ,8 %!% Z8<'5 
&
"( &* < <";M4 %!- .  0'J<5 0' 0'<'0'J<"6
& * "!- 01!%9 #- &60\=
kG
 0'<'0,80)*0
" 1" .'   " '&&* 07* &0"
2ZI0'<'0{vY y ~q`` v`|'<5 &   E=ch 0'<'0,&07
{vIy ~q6e v6g
" '&&* 07* '<05 4#+ "  W 0,4" 1" . 5*
17'*0<"**a R 0'; 25( 0'&
0E=
G07
*&
 "27 7U*I0 0'<0*0
% "478&*"
+ &  "*<'0 ,& " &* " 
 
 "!  &
&  07*=
%!+ &
!% '&6 "!ON 6- &
5!+ '&* 07 '<' &
0   &
&* @74 &   w'", &
( '&  < <
j8
 6j_' A hF Fb|=/6 &
"(* '&  < '<
@ 0
, (  &
 W*0<0'8 7=

[ *<0* " '&&* 07* )(* "!+ W81!:'(*0EU 6 0.R-*I057 "4  2,(!% "!%95  &*  <'0,4"

&
* !- 01"!%9*#- &60<" '" I0)( 0!\* 07(*"!% '&  @4<* &
&* @7=_ 0' 0'<'08 " 0


* &  + ",( "!% 5 <" <"874 & " !- 01!+9#- &0,3 "!%9"*?*&* ' < 8&*  <'0W
&
"( &* < <)*0,+9
" &&* 0* < 7='w0 *! " '&&* 0 <0&07!-!%&6 "2
 5 0'*0'<'0'
< &
 !- 01!+9*#- &0,;#-%&072f"8<4#-!-*6+ &
&* 07*86<'* !-!+0  0<
(  &
&* 07 435
%   V 807(*"!% '&  0J<" " '&&* @7=
_  W !%&  6<'W4Z*+0<0J<"}w'"
7? % " <'El ~v6v`F|q``R?jOpgv`~
k'.*&*  l
jg6eU{veq
_* &*  }'"W(! 0(*0!+&* 0* 5 &*   . %!% '& W( !+  0<0 0 0'<0'8 78M,* L=
/0!:( 0!+&* 0E W2 "!+&0,<4-!% . XR%0,&6072f"(* "!% ,&607
%!:' !\'
&
 !: 0,1"!+9*#- &60 
7hU (*&* #- &
27 4 0" f27*U
M 8& ( '&* <' '<'8<  &
&* @7;M4&
0"  * @7=
rYy x{vI*6exeI`eXxXwXxe{
kj" '&&* 07* , 0gNg2  ;1''0"2Z%!- &0';<"5*0<0E=
rYy x{vI*6exe {geE6uGXYgv`IYe v`q6jq{`76uGe{ve
B&6% * m+< &6% * "6&
9 &* 0, "
+0"29*- &0<5 0'Ng2 +J102Z%!- &60'J<'W*0'<'0\=
{vIy ~q6e v6$Xe` veq6`y ~q6` vX
[ *<0* " '&&* 07* , %!-+W 0'<'0)('*'< !7" 1" <'0\= [  <0 
" '&
&  0 
#+ "  5  <" & 3"+W*0<0M8*4a' R%0*0
0E8" 1" . =
_  W !%&  6<',B 7(* '&  <' '<'8<j
3

j 3 9#"> 9E

F#"$

\(*&* #- & 3"*,6 ) 0'<'0 "!%95!+(*0"!I+ <'0,"


8+"/% 60'& '!-!%5*
  &
&* @"='\6+ &
7( '&  <' '<,J @" 0 7(  &
.' W(* !% W*0<04 7"
 17
07!+ <'0)(* !+
 0'<'0 'O=X   0"!/(
0!< #+'&6 0)(* "!% W 0'<'0'8+"4T#+ "  7=_
0'
0<'0 
 !- 0"!%
0
*&  + "8*!\f &087" 8+7"%43"W*0% *  &
&  0 <0
j8
 6j_' A hF Fb| !+974 ?&*  <'0J<'" 7*"8+"/-"=

*>7:9hhwF9E 3
q7^="

\(*&* #- & 3"*,6 ) 0'<'0}( !-2  5 '!  &*!- .' !  5 # 0!-24 '&* @EJ<"*Ng2  =
*>7:9Z" >7j 3 9E 3 TR7^=" 3
\(*&* #- & 3"*,6 ) 0'<'0}( !-2  5 '!  &*!- .' ! \*6% <0<" " '&&* @7"=
% !+ 4# 0!-2  3*W(!+0'1!+ "2 '<'0!\('<5!%<&  !"6&
9&*' 0<  &
&* @78 * !
(!:*.* 8<'5 
 !+*'&&* @74<'5N|2  8; *V4<W(!:". J<5 
 "!  '&
&* 0*
102Z%!- & = VG "!- 8&   !% &* 07* < 8&07 
" '&
&  @ ( &*eE% *&07 6-!-*&6 0!%
M6m+0W2Z* 0'<'0'8&07( "!+9"2*%!+0,3** " '&&* 07*  W'*0<El 3 9h[wP0
w 3 9 3 W
3 w cT=*[*  <'0   &
&  07*  3 97hhwhU   &
&  @6+9
<*+"!-2  <" 5 *  <'0W 0'N|2  ;<5 0'J0".R% 0; ' * " 'U 05 10"2*:!QN 5!+' "g=_
<*+"!-2  &* @74<'W' 
" '&&* @ * 7
<05 0gN2  8J 17 #- &
+  2+529
 "*&    &602,(  &* 0E  2 F(* "!% 4+0<0*?&
7(I0)( !% 5 T# 0!-2 J1"02Z*%!- & 
 "*&    ;M( 0"!E 0 "
I0EU!+ + 2XR%0"!\!% <" 2 "
 0\=/0!""( 0EU W(*Z!+< <
83", 
" '&&* @E 0,T+ ",(!%&*  &  "*<0, 5
%   V Ng2 +(* !+ 
<*+"!-2  &* @7=
cB* 4%!+& "!% 4+Z& & <)(! 01"!% "2 &* @7(* !+ ,!-<*&* !7&60' <'& 9 &*' 0)(* "!% 5
  &
&* @4  2  !769"2.' I0<5 W(!-. <  &
&  @4 5 W(*0"!+&* 0E!+   
 <'"

&
* !- 01"!%9*#- &60\=j8&
< &   <'W %   < <<  &
&* @7J*
" '&
&  07* 5,
0<'0
&0"20, !+ 7N V(* "!% 61"!-9 #- &60,  6+' "!O=/6 W*0'<'0}
05&
 "!- "2
  !+ N V4<'
 5!+ "2 <&0E+ <'017!+9*#- &0E=/0!"6&0
%!% "!- 0EU*"*
0'<'0)(* * <0<"."!QN 
"!7"
!% N V
<, *.!% "2 <"&60E%" <03* @" 0,&60E- "0.R%I0'J" '1" . 'U
6(*0 .' E=\
&0 * <"!% '&  @( 0!+<!QN 
"!E"* 52 *M*0!'#+ '&`+0"!<"< "!:2 '&* @E87 &607
%!Q*&
&  @4<
4 &7* "!- 01!%9 #: &0W( !-  " 1 8 7(  &
&* 07 =
j
E 4h ' ;")F% 'WF f
i M8<'0'8 (!+0*?' 2 '&  0.9 &
( !% 5* "!E 8&
!- &6 "!ON % &
J< " '&&* @78<
w
 ,hU * "!"0.R%I0'8<'&*  , & *EU
0,& !+' "!7&   ' & )(*!+
07* "  V <' ;M
*
!eR%"2,( "!+8<"+ 8&   =' (* 3*+}' &  W *&   M &* 
( !+
( &*YmQ! 0+ * 7U'( &*m %!+ 
  7UM( &*Ym+V
0'0"2W='\J<'&  !QU  "!- 0}(< 1" !"M! 0+ !/'
0.YR-*I0}(!% 07* 7
<0, . 0 @78<"
!+  @78& *<05*('
+!%06+9
0.'!+,"`0.YR-* 0

<* '<'0M47I0E &


8 "!:!+ 6-!%  !+ * @7 2 7-!% 2 "
% *W( 
'<05"
.*0+@*= B '<
* <6% 8&* 
J<}' & 
)*
5.0 @78<" #+"!+
 <'"
!% * @7a* '&  "*<0}(*0 .' 
"
*0<"0.R%I0}( "!% , ;-!+8&* 
8<'}" & 5 52 *2  (  &
&* @7
 2  9  2+E=
G@240W"80.R%I0,&6072,( 0!I "2 "
I0 f *,0(*"!+ "!%907.!-&* " 3" !70.R%I0<"

&
* !- 01"!%9*#- &60 &07 8&
"(* &* <" <4 (! 0E( <" 
U @ 0*5'&*  )(! 0E( 0!+&* 07* "!
80.YR-*+0}' & *\=_ J<0'J* 1"' 7 N|* J<&@'< 1'0
07JI0'<0W 0,3"
*&  + 240 &* ' !7"(!+01!% "2   7H( !+ W  !\ J&*  8<" " '&&* @7l
y ~Y qXgv*v6qrey ` Xv6YqXrey 6
hXv{Dy ~ |qYgv*v6XqYrey `I$geI{~{q6{rYqee6`xX{-
geIt qXx`x`E`y x6$vYqXrXy `|%
60".R%I05v6YqXrey 6"2407 I0!- V* !-9&* " 3" !E 
 0<  &
&* @74 &
" !- 0
1!%9 #: &0 . eR+05*
0<0W!% EN V 7M2"XR- 5 08 "!-!% 6-!%;M( 
'&  07*8< !+ I@"=F|X
(!+0(*0"!+&* 0E* , 5(*0!+&  @78< &
 !- 017!+9*#- &0, &*a'3" !/(* "!% , 
" &&* @7U "`~q6YrYqX
 * %* <0*<6 9,"
!% *I@E'U
M``xeG0E 0'Ng2 +J<60".R%I0,<'&
02,(*0"!I+ "2  0
' &  /=
w'&+ W(* "!% 5 * "!E 8&   J<W
-   <' <J<}' & /=
1.
2.
3.
4.

Crear nuestro escenario grfico.


geY ~q{rq Xxe
,
,y
.
Crear un objeto behavior picking con la especificacin de
Aadir el objeto behavior al escenario grfico.
Activar las capacidades apropiadas para los objetos del escenario grfico.

G

';WF + 4E "*',
W* "8-* ' f *
_ 0G  10'298&02,' &*  M*
0 ' < ! *<5 *&*  !"`0.YR-* 0)"* 4

&
* !- 01"!%9*#- &60EUM 0,
" '&&* 07 !E 0gNg2  8 "(!+07( <'0'J<"`0.R%* 0E=
%! 0)(!+0".' 2 &
02f*0 " &
&* 07* "!E 8& "( &* < <"8 7(!+07( < (* !% 5 0
0.YR-*I0'8<"6 &* "!- 0,1!%9 #: &0E='iw *M80%!+0'J<'0'(!+0. 2 2 0!%'U 3*<".!QN "240
&*a*3' "!"*%!+ , "('  & '&* @7*0#-'*&* 0E E=ch 0, 0  &
&* 07* "!
(! 0E( <" 2+"
!+ 7N V4< &
 !- 01!%9*#- &0E= %! 0)(!+0".' 24 )( 0%"*&   0
  &
&* 0 "! (!+07( '< "2
 &
 * =G
17'*0<" 0'8!:! 07!+J<"W(!+01"!% "2 &* @E
1*"!+ !+9"4 ' 
0,0527
 XR-<"!-!%0"!O=
F %"

%", 0 J7* 7 & '

 !+ 1247 0<,B@'< 1'0"KQ 26-!%  24Z 0'<'0~Ygv`qv ~v6Xv`Fgq6e[<5  (  &
&* @7
0* "F & ('(= R% * * =/ W(!+017!+ "2 W  W'407.YR-*I0F f j' +)( "!+ W(!+07( 0!+&* 07* !
8
 
 "!+ &
&* @E=
.*
"!$  3&0"20W &0 6-!:*&
&* @78<607.YR%I0' & 
)!+'3' !+540".XR%I0
B7 EhU "
2ZI0<'0,~YgveqY|v ~vYv`jgq6eh< #: !%<4 *!  07*J 7
 "!- 0"!+'(
0!E
 *&* ** @8<*( !+9"2%!+0~q6{rqX6=0!""(I0EU
 "2. Z4&
2,. 5 &60!:!+( 07 <" 
 
  *0'&
&* @E4 ~Y|veqYgv ~v6v`F|q`e
=
Fragmento de Cdigo 4-9, Mtodo createSceneGraph de la aplicacin MousePickApp.

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX$qrqXz4~q{rqX{


  Egveqv|XvBge6`|vBegq~j6gqX
t
zt
|q6X~YXFg6`j6Op `[YvYDgqY~XFg6eeg%
t
*|q`6IuFg6ew6Op gqgvBhee
t
y ~Y qXv*v6Xqrey 6*Xy ~Y qXvB[ee
t
t
*|q`6Iuz`J$|q6Y|`IuD[vY5|q66$uz67g%
*6`x`y  ev6gvhvqrYv6XXxXj[vY*eYxy Y Xv6gv6g%
 t
 t
 
~Ygv`qvG76 `$EeXvGq6Yx[y ~ Y|qv
vqXry 66Opgv`~
  t
e t |gqYg6$uBt {vYg*|q6YX qY$y e$vYv`~|6|zY|+ Q  t  t  IO Q  t I%
t 6Op qgvhhYvWgq6{g`IuwFg6`e ||q`6$uw%
zt 6Op qgv
t v|7q6q6`y y ggq6|6$uwFg6et X1 ?A@CB  ? D BO@ E E %
t 6Op qgv
t v|7q6q6`y y ggq6|6$uwFg6et X1 ?A@CB  ? D B FE %
t 6Op qgv
t v|7q6q6`y y ggq6|6$uwFg6et E ' E B` A B F E &? %
t
t 6Op eIt qexex6Eey x6gQp XqgvX-
6Op qgv
t qexex`E`y x6IvYWE6 6|\ev6  t $%
  t
  t
 t ey ~ qgvhhYvy ~Y qXvv6qrey 6$|`Lp `I ~q6YrYqXeXv6qrv*6eXx{-

 t 6Op eIt qexex6Eey x6$`y ~Y gqgvX-
e t
zt  
qexXxBq{ve~6XxG76 `$EevG`Lp|ve~egw|XvwY~v6vG6gq6e
X t |gqYg6$uBt {vYg*|q6YX qY$y e$vYv`~|6|zY|  t I  t  IO Q  t I%
t 6Op qgvhhYvWgq6{g`IuwFg6`e ||q`6$uw%
` t 6Op qgv
t v|7q6q6`y y ggq6|6$uwFg6et X1 ?A@CB  ? D  BO@ E E %

t
 t

6Op  qgv
t v|7q6q6`y y g gq6|6$uwFg6et X 1?A@CB  ? D  B F E %
6Op  qgv
t v|7q6q6`y y g gq6|6$uwFg6et E ' E B` AB F E &? %

 t
z  t 6Op eIt qexex6Eey x6gQp XgqYgvX-
z t 6Op qgv
t qexex`E`y x6IvYWE6 6|\ev6  t $%
zt
zezt  YvY6{qXrYqBz6v6 g6Iu6{$y uGy Yq|y `F6$`y Y~{v6vG6gq6Xt
z t 6Op eIt ~u`y v6g%
zt
z t gv$e$j6Lp X
z t  v6xGY~Ygv`qv ~v6Xv`Fgq6eGujv|XexG  `{v
y ~Y `
\ &@< 10J 2  !" "6<' 40"* 7w0 *+C*('("= R-  U'(*"!+0,J< % 
I05"2,*&*a 
&0 =F!- 2"!+07U*46%5(!+0'1!+ 24  @" 0
5* 5807.YR-*I0}"*' 7QU2 "
%!+ 43"
80* w0 +C*('(* ". <'080.YR-* 0' 7K
0)(*0"!7& '< 07.YR%I0 ' * "g=
[*3""6&@'<" 10,J 2  !QU*"6&0"2,( 0"!I% 2 7
 0J<" #+!-"
+7='\ W(!+0'1!% 2
(*"!-2 + "   "!- 0  '&
&* 07 "!\'40.YR-* 0,5 
 "!% &6% !7&60E4Z|=80* 7j0 *%C*((
! 0 . 5 0'J<0'80".R%I080)  1"
0\=
3

Y#" G7+e474'5[ '


' f *,' **E

i MJ%!+ " J<&   ,' & *,8


*  E[=FYG&0"!% *V*@4< * * * ,
w
(!+0(*0"!+&* 0E* , ,2 0!'#: &* 07*   <' '<E='*( '3+<W
-   <' < & *)(!I07( 0!+&* 07*
&* 
J<'&
0"25( 0!I "2  0'J1*"!% " U* 1 .' (* "!% W(*"! 
0E* "  V* '&  @"=F (* 3 
' &   "2. Z",(!+07(*0"!%&* 07 &* 
, f *5( '&N #- & 83"W('<  "!+

< !+'&`+ 2
 ,",(! 0'1!% "2 J
*  7[=
_* 8&* 
8&0!% V
@E  &  M*"5F f *M *"8+''+UM2ZI0'<'0';<"
F+7 '8 JM,* " E=\ 8&   (! 0E( 0!+&  0 ""
2'& 7 *240}( !+ '(&* #- & "!
* 4# 0!:2 5* <" 7 &6025(! 07. '&* @78<5 
 "!+ '&&* 07*8&60E80.R%I0'T '   =/6
 &
&* @7('!+*7 "<5 J&*  ,F f M 7*8+7%"U
M 8&*  
M2Z* 0'<'0!%" '&  0 <'0'=
[   f w*
\ &* 
 ". %!% '&`% 5*0)(!+0E(! 0&* 0E* W&0 6-!:*&6I0!%
2Z 0'<'0''=F!+07( 0!+&  07*
". %!% '&&* @7,( !+ &* *-!+0*.*&* 
l'F f /7 'U'F & w% MU'j & j47
QUM

F f /  Q=
F f 
k'.*&*  4B0E
0&  < 'lF & f6/0' <'Uj &* w MUF & 6kj1"2QUF & /0 

c * &* *1*"!% *( "!% < & !- . !ET#%0"!-2 <  &
&  @43*)(<W  "!+
&
0
B
2Z* 0'<0J<" " '&&* @74<'}j+7 8 7'8M,* " E=
F f /*'
_ 080.YR-* 0',F & / '!+(!+ 7+ gNg2  5(* !%  6% "!7" '&&* 07*'= G0280)*
.&  *<}F f "*7U 0'J0".R%I0'j &  J
5*
4&075j+ 8 78M
*   'N &0"240,&074&*  8<'" ( 3*+} & /=
k2 !- 0<',B0E
%!-&6 0!+J<}F f /7 '
7?
- 
<7ly ~Y  qYv
cBgNg2  W(* !% 2 %!% !7 5 02Z* 0'<0J<" " &
&* @78<}j+7 8 8M,*  E=
 y ~{Y*Xxeg
[!+' 5"j &*e6/0 <''=
y ~{Y*XxeI`eXxej6exeG?FOp|ve~
[!+' 5"j &*e 6/0 <'J&07 0gNg2  8(*&* #- &6 <0=
k'2 "!- 0<')4Z* 0'<'0'J<}F f /7'*'
*6exe`v|g
. %  ," "  4Y+ <
<6%5j &*e6/0 <''=
rYy xGv$ 6`xXw6eXxXO ?jOp|v`~
kj" '&
&  0* "**7*'
4e% <"
%!+0<"+WF &*f6/0"
<'=
F f /

_ 080.YR-* 0',F & /"


E! (!+ % "',(
 0)(* "!% 
" '&
&  @"= B0240W" .&  *
<)j & G7*EU  0J0.YR%I0',F & /"" J
5*
4&60E5j+7 8 78M*   'N
&0"20,&074&   J<" (* 3*+} f /=
k'24 !- 0<h07 6-!-*&6 07!+J<")j & 
7? % 
<7l'y ~Y qv
k'2 6-!+ 5',(" 0, 5 02Z*+0<0J<" " &
&* @78<}j+7  8 7'8M,* 
 y ~YY y {$g
[!+ ,"F &* /0"" o7U o7U o=
y ~YY y {$ y |zexB e~{q$y `
[!+ ,"F &* /0"" 0&
*% 0"=
kG2 !- 0<')4Z*+0<0J<")j & "
rYy x{vY$ *`y {gzexB e~{q|y 6Y
kw &
&  0* 5 W( 0' &* @7J<, WF &* /0 O=7? ` 524Z 0'<'01"&0!:!+( 07 <" 
 7=
F f wM
_ 080.YR-* 0',F & w%M!+(!- 
 7"!% *M 0 ',(
I0M < !+'&
&  @7 F(* "!+
  &
&* @"=*G0240)' '.*&*  <"}F & G*EU* 0J0.YR-*I0',F & /"
'8 ,* "4&
0
F+\ '8 JM,* "  'N*&6020&074&*  J<"*( '3"*+)' & /=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & w%M
7? % " <'El*'y ~Y Yqv
  & *w M4* *&
(**' '&  @8<","!% *M 0}( !+ W(*  "!- 0, 5 0'2Z* 0'<'0'J<  &
&* @
F
,w+ '8 7'8M, 
 y ~Y q g
[!+ 5F &**w *M4&07807!- 1"JM4< !+'&&* @74<' o7U*o7U o=
y ~Y q I*6y {|zXxG6$y 6y 6v`~6|zexxy gve~|y Y
[!+ 5!+ M
0,<' <'0"!: 1 4&6074<" !+&
&* @ < !%'&`% 0"=

k'2 "!- 0<)4Z* 0'<'0'J<}F f wM


rYy x{v|+ 6y {|zXxG`Iy 6y 6"v`~6|zXxxy gv`~|y 6
kj" '&&* 07* "
!% *M 053 (%<"<"07!- 1 47J< !%&
&  @78< !+'&`- 07='E? 6+"
&0"!-!-( 0E
< 7 52ZI0'<01Q=
F f j7

_ 080.YR-* 0',F & j74 7!+(!%*


 7"8
'1"2 0<",gN|* <" #- <' )(
07!"<0
(
I0 ( "!%  " '&&* @7"=*G0"240)' *.*&*  <"}F & *EU 0J0.YR-* 0,F f /7'*'
 5 * "4&
05j+7 'J "JM,*  , 'N &0280,&04&* 
8<'"*(* '3"*+}' & /=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & j7

7? % " <'El*'y ~Y Yqv


  & *w M4* *&
(**' '&  @8<","8
'1"27I0)( * <0, , 02ZI0'<'08<
F
  &
&* @8<"}j+ 8I78M, 
 y ~Y v`6uwv6{|g
[!+ 5F &*6kj1"2
Q=
y ~Y v`6uwv6{|I6y {gzXxgq6 e y {|zXxvxe
[!+ 5F &*6kj1"2
"< <"*("I0 !I7a + " ("I0,7 <\=
k'2 "!- 0<W2Z* 0'<'0'J<}F f j'

rYy x{v|+ 6y {|zXxgq6 Ie*6y {|zXxvYxe


kj" '&&* 07* "` 1"2 0<"
<" (''
 06+ !I\a* + *(" 0, <\=E? 6+"
&0"!-!-( 0E
< 7 52ZI0'<01Q=

7 *"J%"'/%
_* &*  , 7*"8+'% 5  " 52 *M*0!QN <'5 8 (  & '&* 07 ';<
" '&
&  @7"=
\I0,(*0!+3"5*0"!:2 " 27 5  " &
&* @7 2,(  &
 &
07%!- !\4&
"2  0<

 
&
* !- 01"!%9*#- &60,78"3 *&*7%!% 5"J07.R%* 0W( "!% 5(!:2  5 52 " (' &* @7
<60".R% 00,<'W'40.YR-I0,j+*`+-8 7'"4" (* *-a"=
cB80.R%I0W 8+%,!+"(!+ + "6&
2
0<" &
* "!- 01"!%9#- &0Wa* '&  
0.YR-*I05" 1" <0)(*"!-2 % " <'0W 52 7 (' &* @78<"`0.R%* 00<"580.R%I0
%*`+-8 ""4"6&
2
0,<'"60.R%I0E=
g
%! 0<"&&* @74 5 J+7"%
cB80.R%I0W 8+%,!+"(!+ + "6&
2
0<"
<5",*  5a* 6% ," 0'<'0
 "2!- * 4"6 &7* "!- 01!%9 #- &0E='\6+&
"2
05&0   5* " 7U*', 0'<0
 "!-2 * gUM4 "!-!% M8<)
0<0' 
+"!: 0'83"+9"4"*( %a<'
<"  Wa 
"  0<0 "!:2 "g='*
0'<0 !-2 * *( 0'<!QN  !\', 0'<0**05 0'<'0)4 "=cB
8%"'/%8 9  <0<".5 <'7- #- & "!Ef & "2"
+54eR%"2,( "!"<"5 0<0
 "!-2 * |= "!% W 0'<'0'83")
05 97. eR+0W"%J+U* '8+7"%
25N| 240,&60E
  78" " M4'*(! 0( 0}
0<0+!-2  |= "!+ W 0<0'43 97. eR+0
G+8 "U*'
8%%,25N| 240&07
  4"* " 7U "  0<0
 "!-2 * gUM* 5  6+ <I0<'0'4 0*0'<'0,' 4&
2  0,<'
<" " 5a &* "
 0'<'0%!-2* "g=ch 7*"8+''+07( &* 07* " 2
 W(*0'<!QN &07%"!70%!+0
0<0'
 
 "!- 0!+43"6%9"""6&
"2
0\=cB 7*8+'% 8 "!- #% & &0
%!% !-!+0"!%
&** 7
<0 76 "N &6072405 ! 172 0, 0-! 02Z 0<0J<" *  7[=
F4"6 "!-!% MJ<"W 0'<'0' 
 !O 0'U**
0<'0,Ng <" &
o,8" *0<0W249'8&
!+&
*0, 
*  E=N|
< &

5 &*!+2%  5 05 ! 10<"6&
"2
0)a &* ,* 0'<'0%!-2  gU &078"
 0'<'0<")N| <" &
5 07 1 %<'K{n  <'0,**0<0529'8&"!+&
*05 W
0<0+"!-2,  "g=' !-!% *M8<
 0'<'0*0&0E% "*)  3"5*0, 0'<'0'F* 0'<'0+"!-2* "g=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 '8+7%
 *<0) 7*"8+"%J<'*  I0<
<52Z*I0<'0'J<  &
&* @40,&0"   @7
[
< * * * ,7hU "2,. Z"4&
0
% *,"X   0"!<'"`07.YR-* 0:+*`+- *  \F7- ,<
 0'<'0%!-2* "63""!%  #+'&6I05""
240"2
 030&!:!- @W &60    @80W
  &
&* @"= .a*"!$  3" 3 j 3 9Z
">
9E 3 /F#
"|M
3 j 3 9B'
"=
" F 9E 3 F#
"| 6 98< &6%  <'0'( 0!<'*#%'&`+0E='\I0* 1 #- &

3"5 0'2Z* 0'<'0'J< " &


&* @JM4&0"  * @78<'* *0 !%9
8+7/%,25N| 280
( 0!<*#+&6I0\=
{~ v`v`Fgqe6 q|eg
G07
-!- M*5"80.R%* 0,kw&*8!% "('a *-a&07( !%9"2*-!+0( 0!"<" #%&6I0\=
~{v`v`Fgqe6 q|eIe~{q6 vBg`IX`xevG6Op|ve~
G07
-!- M*5" 00.R%* 0,kj&7 8!% (a *:a=
~{v`v`Fgqe6 q|eIe~{q6 vBg`IX`xev   exeveeX`xevG`Op$ve~g
G07
-!- M*5" 00.R%* 0,kj&7 8!% (a *:a=
_  W !%&  6<'W4Z*+0<0J<", 7*"8++
e6 veq6wvRtq  p|qXr{q
t q6Xt ?jOpgv`~
w*  *-!-6"`0.YR-* 0 J<"e- ( 05 7 "8+'%4M;I0'<0' 0J<' I0
2 "2.!+0'J< 0E 1* " 8 , 02 "2,.!+0'8<'< * 0'8&60!:!+(*0*<" 
 84+
8%"'/%4M8 
 0T   0"!%J<%!+ 7
6# 07!:2 &* @78
07 1 " =
gq6|6$uwz6XvgqYg6$uG|
w*  *5"* &07( <'`%!+ 
6# 0!-2 
0'&* '<0,&
06+kw&7 8!% (a'F *%a" <*  *
 ` 
0Wa MJ%!+ 7
6# 07!:2W=
y qe7exev6g
w*  *5"f'2"!+P
0 T a &a T
. * <0, 0'T  " 0!+J<5 0'J<'  0J<" 0".R% 0\=
e6 veq6Gy q6uwvqY$e ~vXv`Fgq6e`*q|FgvXI*q|
w "!:2 `<'080.YR-*+0 8+7+,!+"(!%
7+ 4 2 240W( -a8<"

&
* !- 01"!% *#- &60E " 1f807.YR%I0)(*0'<!QN 5 *&   !EJ'.*&
07YR:I0,< #+"!+7
 <W 0'<0
 
 "!: 0''

@" 0W 0 0'<0'  e "!: 0'U*  U
M4*(! 0( 0) 0<'0 0&0"25(* !% '<0'=
y exev`7``{||
w'& "(*"!% *f'2"! 0,<"5*0'<'0';<"+W( *%a=
rYy x{v| ~{v6vejgqX`q|GvYF*q$Y
kj" '&&* 07* , 0T   0"!%8<'"*( -a *(* %a'(&* #- & <0\=
rYy x{vIY`~q6 v6IY`~q6 vhvYjYX~{q6 vX
kj" '&&* 07* "  <6+W(* *:a4 5 0_*0'&  '( '&  #- &
<0\=
rYy x{v$exXv6Iy {
y XxXvXs`X`xevBXv{j`xeve
w'"2,( *V * 0'<07N| <" &(&* #: &
<'0,&07*
j0'<"7=
rYy x{v$exXveI"exev   `xXve{

k " '&&* 07* "`0.R%* 0)*0'<'0<6%5( *-a4&


07 0J07.YR-*I0' 0<0'4('&* #% & <'0=
j
rYy x{v+?jOp|v`~|I"exevG6Op|ve~g
kj" '&&* 07* "  0<0 !:2 "6<'+W( *%a "`0.YR-* 0W*0'<'05(*'&* #- & <0\=
rYy x{vgqYg6$u|*gq66Iuwz6J||q6Y{
kj" '&&* 07* "6&02(*07*+%!+ 7 `# 0!:2<"+W 7*8+7"/- e " 0!"<"
%!+  `#+0!-2 (* * <'0E=
p|qrYq
t q6
t $Iy wg |$y X6g
w*  *5"* 5!+7(!% 
 &* @786-!- *1<"+0".R%I0E*"`%!-
1,&0
% 7*, 0*0"2,.!-
<, 8&*  8<' 0'<0 0'
0'<'0'4"" 7*8+'*%U "
24ZI0'<'0 |Iy `|'<"
&** " 3 !\ * !- 0, 
0&  <07U
 "2.' Z 2,(!: 2"`%!+ 
6# 0!:2**
0,' 0\=
!b

'';"j"
478"Wj+ '8 "NM 
F 0'J 1 
 .' 0"3"8<,!- #+!+*&* +97 02ZI0'<0J<"5 8&   
F+7 '8 JM,* "
(* "!+ &a*3"'0<"5 
 ! *'&&* @74&60E40".R%I0,F f *E='\ 
8* *"`<&9" &*' 0<  &
&* @294. XR%0)(! 0E(
0!+&* 0E* <'0)( 0!7"w * * 7[=
4Z* 0'<0J<" " '&&* @74<'}j+7 8 7'8M,* " )( "!+ *  0,&075F f 
{~ v`v`Fgqe6 q| 
`y ~ Iy ~Y Xq6vhey ~ q6XvX
w*  *5"4 "!-!% M43"W!+ #+"!%7 &* I0'<'0' 0'N  "2883
074" 1" .' .* eR+0,6+
F+7 '8 43", "!%
'&
&  07* 4&075F f E=6 "!-!+ M!%  
 W 05 9
0!+<'7 '<'0\=
~{v`v`Fgqe6 q|  
`y ~ 6 gvXx6 y ~Y q6vhey ~{ Xq`Xve
w*  *5"4 "!-!% M80"!+<"" <0,<'5!%*#+"!%*&  8 I0'<0' 0'N  "284" 1" . 83"
 
 "!  &
&  07* 4&074"' & *7*\= 3 47
F !+*#+!+*&  N  "2 294&
!+& "*0, 
0!- 18<}F & *7U &0 0'8 27I0'J* 1" +8 " XR-9 <'0' <607!- 1""=w0 El
' & 7 ,J<`%(
0F f /*''U
" !-!+ M!%'  %5*0,+90"!%<7 '<0\=
~{v`v`Fgqe6 q|Gey ~E XYvX| y ~Y q6vhey ~ Yq6Xve
w*  *5" 7*8+7"/-3"*5!+*#%"!%"*&  N  "2 1 .' 3" 9529
&
!+&  0, 60!- 1""4<'}' & G7*\=j0 El*' & 7 ,J<'"e- ( 0}j & "
U
!+( ,8&* " 3" !
0<05 1 .' <". eR+0,< }j+7 8%7'=
~{v`v`Fgqe6 q|Gey ~ y ~Y Xq6vhXy ~ q6XvX

w*  *5"* 5!+*#%!-"*&*  &** " 3 !/N +2" 1". <". XR%0< }j+7 '8 "43"*
 
 "!  &
&  07* &075 f *E=
[ "
'8;*"+ 'J"
 * ) &

g *&*  <' 84" (* '3*+~uBt et p|zex


t {Iy Xt v`Xqrey et Xy ~y ;a M;  "!- 8&* 
J<
&0"25( 0"!I+ "2 7I0'J17 !+ " TM4'( '&N #- &0=_ '8&   J1!+ " J
07f
-  ( "!+
&*!+' "!\'** 08&
0"2,( 0!I+ 2 I0'8<'* &
&  @U 
%!%5 J3*5 *&  
M*"
F f 8
* OU'F f 4Y- :UM,F & B  & =_ 8&*  8(*'&N #- &
J<
&0"25( 0"!I+ "2 7I0<" !+  @U('!+ 7 '< 4"  1' "
 *&
&* @U

0E8'.*&*  J<
F f 8
* L=
[  WF & 87*
 ' 7
\ 4 &   5.*  )(* "!+ 5 0'8&02,( 0!I 2 
I0'J<'* &
&* @(&'N #: &0
(!+0(*0"!+&* 0E* <'044" (* '3"*+E=6b 2,.' Z4f
%  (* "!+ *?   <"!&*  8<
&0"25( 0"!I+ "2 7I0'J<* &
&* @7(!+
07* "  V* <0'=
k'2 "!- 0<)4Z* 0'<'0'J<}F f 8
7/ 
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'El*v6YqXrey 6
[  5. 
,3"W(*"!:2   5 0'(!+01!% 2 <0"!-4 ]* <" !"  '&
&  @JM2  ( &* @78<"
!+ I@E874 & * "!- 01"!%9*#- &0 (< "!F f B+'7/ /( "!+ 54eR%"2,( 0<"
&@"20, ?  7 <"!7 &* 
W. *=
rYy xhy ey $y q y {v6g
\ 52Z* 0'<'0<".!ON  "!"
0.'!%'*& !- I0)( !+ )(!+07( 0!+&* 0E !6+ <05 &  `M
&0*<" &  @8<"< (* "! 0W ' &  "g=
rYy xBeg`~{vX{ $y ue Y p|qXrYqt $y t E eXuwv6gqIy 6w~Y$y gv6$y qX
\ 52Z* 0'<'0<".!ON 
0.'!+ &*!- .' !  W(* "!% W(!+07( 0!+&* 0E !"6&0"25( 0"!I% "2  0,
!+( , ," &
0*<" &* @8<<" (* "! 0\=

rYy xB`xeqgv ~{v6v` y {`sXXeXy { X{


_* J.&  *;<""."!QN  2( "2
 "!7 4#:*&* @7'(*<  E=
[  WF & 8X+
_* &*  )j & 4X% \(! 0(*0"!+&* 0E 52Z* 0'<0( !% <"* "!:2 * !E3Z07.YR-*+04#:*Z
  &
&* 0 <'0)( 0!\* 07(*"!% &* @74<' " '&
&  @4<'"   "!- 0\=ch*  "2,(  4  !: < <<"
2Z* 0'<0!+' + <"5 J<" % -* T# 0!-2 (*0 .' J< (  & '&* 07 J<
" '&
&  @"=\
f % &*!+ "!&* 
J<  &
&* @7(!  0E "  V* < '=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & 4+
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
G07% *52ZI0<'0'(* "!%  *M' <" !E"   &
&* @E='cB5F & 4X+ " &*!+' <' 7 <'0W
B7 EPM'5F+7 '8 ""= 8+74% I. XR+0,"*w+ 8 7
(&* #: &
<'0)(<""4&a*3' "!  W( !% <"* "!:2 * !* a 8* <0  & &* 07 '<0''=
 y ~Y?jOpgv`~$|7q6YrYqXYz6~XX|q6~jg6XG|eYg
[!+ 5F &* .YR-&6Q=
_  W !%&  6<'W4Z*+0<0J<")j & 4%
F f 4Y- +  )2"!+0 02Z*+0<0( !% "6&
9" &* 0<5 
 "!  '&&* 0E*J<5"
' & wM4&080".R%I0,<'"
 &7 !- 01!%9 #: &0E=`[ 1"'*0J<"5 0'24Z 0'<'0'J
@ 0<" #- "!+4
(* "!%92*-!+0E=/0!XR-"2,( 0,6 17 <'0W2Z* 0'<'0,`y ~Y  0W   <0'/?  &6074
#- !-2 <52Z*I0<'0\l ~{v6Yv6F|q`e`*q$R  
ey ~ Iy {esXXeeYy { XXeXy Ye| qee-U <'07 <"- '5
0
<7lF & 4+ Q|w 3 9h[wBU
0}F f 4% Q|w 3 9" 3 W
3 j c;=
\ 5  6+ 5a*  <007! <7 '<' )( !+ ,*?*&* ' !\ 0'42ZI0<'0'8&60E( "!%92*:!+0J<"5.  <"!+ E=
\I0'24ZI0<0'J
0E <Z
% &08 5 0 *&* ' <0'846+ ,   &0 < #+"!%"*&* <"
(* "!+9"2*%!+0W. "*<"!% 7='\I0'24Z 0'<'0'J0El f [ U & 7I \U' & e MU
M

' & [ ' Q=


 y ~Y Xq6vGev6v6gqgv'y ~ q $y `seeeYy { e{
[!+ 5F &**w *M43","2,( V* 7 W( 0' &* @8<(&6 '<'0!M4 ("
 <
%!+0<5

&
* ,8< !+'&&* @E4 ?'(*0'UM'( 0 \(*&* #: &
<'04(* '&* 0<'5 4  7* E=
~{v`v`Fgqe6 q|  
`y ~ $y eseXeXy XX{
w*  *5"4 "!-!% M43"W!+ #+"!%7 &* I0'<'0' 0'N  "2883
074" 1 .' 8<'.* eR+0,<
F+7 '8  ( '&* #- & <'0,78"&60E
%!-&`+0"!7<'WF &* .YR-&6I\3", "! *&
&* 07* 
&0!% M*03*,"25( V* 7 W(
0' &* @7J<"'(*&6+ <'0!M4 7(+ <"
%! 0,<'5

&
* ,8< !+'&&* @E ?( 0'U
M(*0
/(*'&  #- &
<'0'J74( &* 0<", 8 + * E=
~{v`v`Fgqe6 q|  
`y ~ 6 gvXx6Iy {`seeXy { X{
w*  *5"4 "!-!% M80"!+<"" <0,<'5!%*#+"!%*&  8 I0'<0' 0'N  24F & 6 . ,. XR%05
F+7 '8  ( '&* #- & <'0,78"&60E
%!-&`+0"!7<'WF &* .YR-&6I\3", "!%
'&
&  07*
&0"
!+ M 0,3"2( V* 7 W(
0' &* @8<"(*&6+ <'0!M4 (''
+  5 < !+'&&* @E8<
?( 0''UM'(
0'
/4"6(* '&  0<5 4 "
+ " 7=
~{v`v`Fgqe6 q|Gey ~ Iy {eseXeXy XX
w*  *5"* 5!+*#%!-"*&*  &** " 3 !N  "2 3
'  '1" . <". eR+0<"
F+7 '8  ( '&* #- & <'0,78"&60E
%!-&`+0"!7<'WF &* .YR-&6I\3", "!%
'&
&  07*
&0"
!+ M 0,3"2( V* 7 W(
0' &* @8<"(*&6+ <'0!M4 (''
+  5 < !+'&&* @E
?( 0''UM'(
0'
/4"6(* '&  0<5 4 "
+ " 7=
~{v`v`Fgqe6 q|Gey ~\ XYvX|$y {esXeey { e{
w*  *5"* 5!+*#%!-"*&*  "N  "23, 95298&
!+&
*0, (&6 '<'0!M44" 1" . 
. XR%0"j+ 8 7 (&* #: &
<'074&07*6-!-*&6I0!<5j &* .R%'&` /3
 
 "!+*'&&* 07* &074"
!% M 0,3"2( V 7 W(
0' &* @7J<"(&6 '<'0!M4 7(" ,
 < !+'&
&  @ ?"(
0'U
M'( 0/"( &* 0<, 4 % " 7=
exevhey ~{"Xx`v6 ~v6v`Fgq6`` q$j{
*qY$Yy {XexeGv B{ vX{
w*  *5"* 5!+*#%!-"*&*  5,
0<'0, 1 .' 3",J<"`%(
0,(&* #- &6 <'0,36+9
&0
+ <'0,4"
7*8+'%(*&* #: &
<'0E='j07 <}*'" 9k M'*'; S @'1" &

<5 00W29l'j & 4+ OgwGJ 9wBU'F f 4% QwBwU
F f 4Y- Q| "|;
UF f 4X+ Ql 8BhU'F & 8X% Ogw=
"+ ]" #
" 3 U
F f 4Y- Q B 3 7hUF & 8+ Q A 7" T[UF f 4% Q jw<
<
>9wBG=
exevhey ~{"Xx`v6 ~v6v`Fgq6`` q$w
*qY$Yy {XexeGv B{ vXeXy {`~~e$|v`~{ve

 *  *5"* 5!+*#%!-"*&*  5,


0<'0, 1 .' 3",J<"`%(
0,(&* #- &6 <'0,36+9
w
&0
+ <'0,4"
7*8+'%(*&* #: &
<'0E='j07 <}*'"9kM'*'; 9<" #- <05"
"
2ZI0'<'05 "
+!: 0!O= (* "!+9"2%!+05  :- 5
< &
3"Z07.YR-* 0< 0 !O=
"$% WF & "B  f

 
 "!$#+ '&}F f *"h  & (! 07( 0!+&  07* W'2 !+&
0<%!+ . XR+0}(* !% ?
+"*<'!E"
&* 
<*" '&&* @7 ?'   E=j(* "! % &* !7& '<' W* <5 8&* 
8(*&N #- & 
 2,( "2
 +5 
 "!$#% &
)( !-2 % " <'0, " (!+0'1!% "24 '<'0!\('! 07(*0!+&  0 !/'2Z*I0<'0
3" ' 5  2 <'0,&  *<'05 0E(*"!+ '&  @78<" " &
&* @7;+*1' 5 *1 "!O=
k'2 "!- 0<)4Z* 0'<'0'J<""|
$+ WF &  B  &
 '3"*%7l
~ 6uht Xe6t p$zx
t Iy et Xv`qXrXy 6`t Xy ~Y{y X
rYy xj$gqY|6$uw\q6XXvex6Iy {e v
{gq6Yg` uwFg6ege
_ "24 '<'0)(*0"!7 j & 3!%%! 0'KL  "2 <'0,3"!%1 %!+ <'0,&
< 4 V43"
 5 +"
+ 5   &
&  @"=_ 0T  " 0!%8<4- (
0'T 9  <0'J
0"lT7 3 U
jTwG6G 3 U
{/JW
0Dw<
97#
">
"** !: 0Wa '&
5" * '&
&  @(*"! 0} 0Wa *M,* <" 
" '&&* 07* '<'0
!+  24%=
[ 
"g
+"
_* &*  
 "$
 E(! 07( 0!+&  0 4 * !- 0'2Z* 0'<'0( "!% &6072,(! 07.* !E ,+! *&
&* @78<
80.YR-*+0}j & G* &* 
&0"!% V @7 7M41''0"2%!QN (!- 2 % * '=\ &* 
8f % 
(* "!+ 5 &*!+ &
&  @78<"&*  ( &*
1)(*"! 
07   V* <" =
k'2 "!- 0<,B07 %!-*&6 07!+J<""g
+"
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'Elp$qrYq
t q6
t ?FOp|ve~
07% *52ZI0<'0'8+9% &0'(* "!%  M*< "! 5 8&0"2,('! 0. &* 07*J<5 
 "! *&
&  @
G
%!-8  "!: J&*  ,F f *M81'0"2*-!QN (!- 2 %   &60240]'EU %-   7U' M

*
I=
{gv`gYvX~$g
[!+ 580.R%I0W 
 "!  &6Q=
_  W !%&  6<'W4Z*+0<0J<""|

\ &* 
% "*4 * " 0'24ZI0<'0'J<5 
 "!  '&
&  @U " 17 08<, 08&* " J@ 0 
< #+"!+*&* ( 0!\J%(
0<W(* "!+9"2*-!+0E=/0"!7XR-"2,( 0, 2Z* 0'<'0\l*Ye v`q
6y { x*6y {| y ~YY*y { Yy e y {$z{
`{
< #+"!%*&  <'"` '1"" <'052ZI0'<'0W  6 <'0, '3""N
4"`% ( 0<'" (* !%9"2*%!%0,e{+=_* 52 *M 07!QN <'5 02Z*I0<0'  6+ <'0, '3""N*&07"
(* "!+9"2*%!+0<"`%(
0/7 % "*"2ZI0'<'05&60!-!%(*07 <" 
 &
0( !%9"2*-! 0
<`% ( 0/7 +*O=
e6 veq6GYy Xxey v6 y ~Y 6y {
X6y {Ie y |zex ~`6gx6y YqveeXy { y XxevXsY
w*  *-!-6"*j & 
M8"`0".R%I0*5 
 "! 
'&
&  07* "=
&0'0!+<  +%x$  <*?eyM
&007! <"*  % x$  <*%? FRn y"<*#- *" ,gN|*' E=
e6 veq6GYy Xx*6y $I'y ~{*6y {
y { X`y {gzXxheg
w*  *-!-6"*j & 
M8"`0".R%I0/
W 
 "! 
'&
&  07* "=
e6 veq6Ggq XxXy v`+y ~Y q gq X*y {|zXx  ~`6gx6y qgveeYy {
y xevs6
xe6X` v  6x6y 
w*  *-!-6"*j & 
M8"`0".R%I0*5 
 "! 
'&
&  07* "=
&0'0!+<  +% x$  <*e? yM
&007! <"*  % x$  <*%? FRn y"<*#- *" ,gN|*' E=
e6 veq6Ggq Xx*6y {| y ~ q gq e y {$zxhe{IYxe6ee v  6x`y 
w*  *-!-6"*j & 
M8"`0".R%I0/
W 
 "! 
'&
&  07* "=
e6 veq6Ggq Xx qex6I'y ~ q gq X*y {|zXx  ~{e`|x6y qgvXXXy {
y YxevXs`
xe6X` v  6x6y 
w*  *-!-6"*j & 
M8"`0".R%I0 7- a*+" W 
 "! 
'&
&  0 "=
e6 veq6Ggq Xxe*$y q6 v6Iy ~Y q gq X*6y |zx  6~e6gxy qveeXy { y Xxevs`
xe6X` v  6x6y 
w*  *-!-6"e-!- 9"
17 05+! *&
&* 07* &074"
!+ M 0EU <" 6 *&  <"
<""60"!- 1
< !+ *M*0, *(
I0,<'5 
+"!  '&
&  @U
 ,  24 '&
 78<" 6 xg&o yO=
&00!+<" +'% x$ 
< f? y:U
&007! <"*  % x$  <*%? FRn y:U
M*&60'0! <  *+ x|
<" ? C y< #:  7`%!- 9" 1"' 0\=
e6 veq6j{veujv6{ xey v6 y ~Y v`6uwv6{`{v`6ujv{Ie y {|zx  `~{e6gxy qXveey { y x`vYs6

xe6X` v 6x6y 


w*  *-!-
 ,N|* 5+!  &
&* 07* &0746 172
I07 <  "
+ <
<"
 &* 0
<6
17247 0, 5 , "!+ &
&* @7J ,  24 '& " <7  xg&o yQ= &00! <" + x|
<"*f? y'M
&007! <"*  % x$  <*%? FRn y"<*#- *" ,gN|*' E=
e6 veq6j{veujv6{ x`y {|Iy ~Y ve6uwv6{6v`6ujv{Ie y |zXxhX{ {xeeX v  x6y 
w*  *-!-6"*j & w747
'M460.YR%I0/7 W "!  &
&* 07* "=
e6 veq6j{veujv6{ x q`x6Iy ~Y v`6uwv66{v`6ujv X*y {gzXx  6~{e6gxy qXveeYy {
y xevs6
xe6X` v  6x6y 
w*  *-!-6"63"* '<W 
 !+ '&&* 07 &074"` 12
I0E <   &* < <',"
 &
 0
<6
17247 0, "*("I0,<,+"!  &
&* @EJ   2 &
* ,8<" 6 x&o yO=
e6 veq6j{veujv6{ xe$y q6X6 v6 y ~Y ve6ujv{6{vXujv{Ie 6y |zex  6~e6|x6y Xqvee
y y Yx`vs6{xXe` v  x6y g
w*  *-!-6"e-!- "
17 05+! *&
&* 07* &074"` 172
I07 <  *&* <' <
  &  0<6 127
I05 *(" 0<5 
 "!  '&&* @E8
 " 2 & " 8<  x%o yO=
[ '
';5G, I+ 7
I' f *

* m - 

g *&*  <' 84" (* '3*+~uBt et p|zex


t {Iy Xt v`Xqrey et Xy ~y ;a M4&*  8<'
&0"25( 0"!I+ "2 7I0'8'('&N #- & lF f j' *+/*' 7QU'F f %* * 7/" QU
M
F f {\,/ 7O=\6 8&*  (*"!-2  78 "   "!- 0W "!% &6% !7&07'807.YR%I0
  &
&* 0 <'0,&60E4 !+  @"=_*08&072(*0"!I% 2 +0
< ' <* " 4!-( 0E <4 5 0'
< #+"!+
 . 0 0;<" !+ I@E  V 3"' "!+<' 0 `7! 0+ !OU
<"!+'&*a*0 `%!% * <" !OU &

%!+ " `'V 0'0"2=
\ 8&   J
07J'.*&* 
8<'}F f 8
" O=
_ 080.YR-* 0'J<6+ 8&* 
(< *&0"!Q(*0"!+ !  72,'*<'0'T  !I%* " 'J<'  7
(* "!+ )(! 07(*0"!+&* 07* "!E+"!% '&&* @78* 1"' 7
<0W 5!+&   
 "!- 0"!L= G07280I0< 8 
&* 
 2,( 27+ 4  
 "!$#+ '&
}F f *"B"  & U 0(*!- &* @EJ<" '&
&  @('<'7
2XR%0"!% "! *&60E"* ,  "24 '<' , 52Z 0<0<*#-  <'0)( 0!7 ** !- 0E=
F f j' *+/ 7
\ &* 
W(*"!-2 + " ** !- 0  &
&* 0 "!M!+0+ !\ +!% '&6%  27 W40".R%I0  * |=
   !- 0W * " . 0 @ V 3" ! <0<"
!+ I@E(* "!%  " '&&* 07* "!M!+0 "!O=
kwW('*'<5* "!

 4eR%"2,( "!"<"}F & j+ 7 7"4&0YR:*&* @78&0E80%!+ 8&   8< " '&&* @7
(&N #: &
=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & j  7/* 
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'El*'y ~Y  6{v*vqrey `
2,( "247% 7ly ~y X`q qX~
c 4&02,( 0!I+ "2  0<"5!+ I@E43"W(*"!:2    * "!- 0 " '&&* 07* "!M!+0' "!"0.R%I0'J<
B
4 &7* "!- 01!%9 #: &07**?( 97
< .' , %!+ * ZJ<5!%%! 0KO  "2 <" 7=
 y ~Y qXgv*v6qrey `II|q6~XFg6eg`IY7q6YrYqe{z6~qrYqeee exXY6`xX{
[!+ 54&02,( 0!I 2 " I0,3"'(!%   0'J<'" !+ * @7""6
&
* "!: 01"!%9 #- &60\=
y ~Y qXgv*v6qrey `II|q6~XFg6eg`IY7q6YrYqe{z6~qrYqeee exXY6`xXe
y ey ~Y  `xeve
[!+ 54&02,( 0!I 2 " I0,3"'(!%   0'J<'" !+ * @7""6
&
* "!: 01"!%9 #- &60\=F
(* "!+9"2*%!+0)( &*
80< '( '&  #- &
&0"240)'*0<}F & 4- Q|w 3 9h[wP0
F f 4Y- Q$w 3 9" 3 !
3 w cT='j0 7l
 ( &*
J0<'*
" '&&* 07* 
F f 4Y- Q$w 3 9" 3 !
3 w cU
I0'<0' 0'J0".R%I0J102Z*%!- &0J<"*&
" !- 017!+9*#- &0
6+98<" (*0 .' (* "!% *4  &
&* @JM8<"".J *"!7 '&`-  <'0
*>
7:9F"$F 3 w 3 w=
k'2 "!- 0<)4Z* 0'<'0'J<}F f j'  *' 7
rYy x{vIy ~  `xev6$y {
`y ~Y  exevX
kj" '&&* 0* "&602,( 07*+W( &*
80<'<6+Wj &* w0  I6a ' 0! W 0<
F f 4Y- Q$w 3 97B[w0)j & 4% O|w 3 9" 3 W
3 j cT=j0 El*( &* 80< 
  &
&* 0  }F & 8X+ Q|w 3 9 3 W
3 w cUI0<0 0J07.YR-*I0'J102Z%!- &0';<""

&
* !- 01"!%9*#- &60,6+98<" ( 07 .' (* "!% *4* &
&* @JM8<".J *"!7 '&`-  <'0
*>
7:9F"$F 3 w 3 w=
rYy x{v$eXq q`~ y ~y 6q6 Yq`~\~{q6 Xqe~Y
w1" 6-!+ , &   5!%*-!+0"  "2 <  5  2 "!& <" 8 V83*,"`0.YR-* 0*" '&&* 07 '<0*

2 * 7=

rYy xj$gqY|6$uw\q6XXvex6Iy {e v
{gq6Yg` uwz6;$gqYg6Iuj
4Z* 0'<0<"5!+*-!+0"  "28<" <'
<W807  7w0+ *+E=
kw,* &* 7*<05 6  &
&  @4&0
!+%!+0  "2 <" +9 &6% * E=
rYy xB`xeqgv ~{v6v` y {`sXXeXy { X{
B&6%   V* 5  &
" 5( "!% ,2 (' !7&* " 3' "!/ 0'<'0E=
F f %* I7* 
\ &* 
W(*"!-2 + " ** !- 0  &
&* 0 "!MJ%!% * <" !\ 
 !% '&6%  "2
+,40".R% 0
' * "g='  * "!- 0W* ,"
.*0 @78<"!%'& a0<"
!+ I@7( !-  " &
&* 0E !MJ%!+  < "!O=
kj
(<W  "!\4eR%"25( "!"<}F & F+7 *  "*' 78&07{RQ*&  @4&0780%!% 8&*  
<*" '&&* @74'(*'&N #- & '=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & +7  I7/"* 7
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'El*'y ~Y  6{v*vqrey `
2,( "247% 7ly ~y X`q qX~
c 4&02,( 0!I+ "2  0<"5!+ I@E43"W(*"!:2    * "!- 0 " '&&* 07* "!MJ%!%  < "!"07.YR%I0'
B
<5 &
 !- 01!%9*#- &07* ?(9 <" .  %!% * Z8<,!%%!+0'KO  2 '<' E=
 y ~Ygq{X qgv*v6qrey 6$IgqY~YXF|6e|eIYEq`YrYqeYz`~q6YrYqXee*6exew``xe{
[!+ 54&02,( 0!I 2 " I0,3"'(!%   0'J<'" !+ * @7,( !+ , &
" !- 01"!%9*#- &0
y ~Ygq{X qgv*v6qrey 6$IgqY~YXF|6e|eIYEq`YrYqeYz`~q6YrYqXee*6exew``xee
y ey ~Y  `xeve
[!+ 54&02,( 0!I 2 " I0,3"'(!% *  0'J<'" !+ * @7""6
&
* "!: 01"!%9 #- &60\=F
(* "!+9"2*%!+0)( &*
80< '( '&  #- &
&0"240)'*0<}F & 4- Q|w 3 9h[wP0
F f 4Y- Q$w 3 9" 3 !
3 w cT='j0 7l
 ( &*80<'*
" '&&* 07* 
F f 4Y- Q$w 3 9" 3 !
3 w cU
I0'<0' 0'J0".R%I0J102Z*%!- &0J<"*&
" !- 017!+9*#- &0
6+98<" (*07 .' (* "!% *4  &
&* @7;M8<"".J *"!7 '&`-  <'0

*>7:9F"$F

w=

k'2 "!- 0<)4Z* 0'<'0'J<}F f %**  7/ 


rYy x{vIy ~  `xev6$y {
`y ~Y  exevX
kj" '&&* 07* "6&02(*07*+W( &*
80<'<',6+Wj &*XbF!+ "    6"a ' 07! "X   0"!
(* * <05",( & 80<"E=
rYy x{v$eXq q`~ y ~y 6q6 qe~\~{q6 Xqe~Y
w1" 6-!+ , &   <'5!%-! 0"  "2 < 3" "!+95  "24 '<' & <" 4 *V360".R%I0
  &
&* 0 <'0
52,  7=
rYy xj$gqY|6$uw\q6XXvex6Iy {e v
{gq6Yg` uwz6;$gqYg6Iuj
4Z* 0'<0<"5!+*-!+0"  "24 '< <"
<W40"***bF!% " * +7= kj5  &* *<0W * &
&* @7(*0"!
!+%!+0  "2 <" +9 &6% * E=
rYy xB`xeqgv ~{v6v` y {`sXXeXy { X{
B&6%   V* 5  &
" 5( "!% ,2 (' !7&* " 3' "!/ 0'<'0E=
F f {\,/ 7
\ &* 
W(*"!-2 + " ** !- 0  &
&* 0 "!Ma &"!V 00"2  !+ &6% * "2"
+5807.YR-*I0
' * "g='  * "!- 0W* ,"
.*0 @74&

%!% "`< !+  @,(* "!+ * &
&  0 !"Ma* '&
"!V*0072W=
kj
(<W  "!\4eR%"25( "!"<}F & {\, "74&607YR:*&* @78&
040%!% 8&   J<"
  &
&* @4(&N #: &
=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F & {\,** 
 '3"*%7l
~6uht Xe`t p|zXx t {$y et v6qXrXy 6et ey ~Yy X
7? % " <'El*'y ~Y  6{v*vqrey `
2,( "247% 7ly ~y X`q qX~
c 4&02,( 0!I+ "2  0<"5!+ I@E43"W(*"!:2    * "!- 0 " '&&* 07* "!Ma '&
!"V
00"2
B
0.YR-*I0'8<5"8 &
* "!- 01!%9 #- &07* ?(*97
< .'  %!+ * *Z8<'5!%%!+0'KO  "2 <" 7=
y ~Y\)X6uB*vYqXrXy 6$ gq6X~YeFg6ege Yq{rqz6~q`YrYqeee 6`YxejX6exX{

[!+ 54&02,( 0!I 2 


I0,3"'(!% *  0'J<'" !+ * @7,( !+ , &
" !- 01"!%9*#- &0\=
y ~Y\ )X6uB*vYqXrXy 6$ gq6X~YeFg6ege Yq{rqz6~q`YrYqeee 6`YxejX6exXe
y ey ~Y  `xeve
[!+ 54&02,( 0!I 2 " I0,3"'(!%   0'J<'" !+ * @7""6
&
* "!: 01"!%9 #- &60\=F
(* "!+9"2*%!+0)( &*
80< '( '&  #- &
&0"240)'*0<}F & 4- Q|w 3 9h[wP0
F f 4Y- Q$w 3 9" 3 !
3 w cT='j0 7l
 ( &*80<'*
" '&&* 07* 
F f 4Y- Q$w 3 9" 3 !
3 w cU
I0'<0' 0'J0".R%I0J102Z*%!- &0J<"*&
" !- 017!+9*#- &0
6+98<" (*0 .' (* "!% *4  &
&* @JM8<"".J *"!7 '&`-  <'0
*>
7:9F" F 3 w 3 w=
k'2 "!- 0<)4Z* 0'<'0'J<}F f {\," 7
rYy x{vIy ~  `xev6$y {
`y ~Y  exevX
kj" '&&* 07* "6&02(*07*+W( &*
80<'<',6+Wj &*X/002P6a ' 0! "e * " 0!\(  <0
( &* J0'<E=
rYy x{v$eXq q`~ y ~y 6q6 Yq`~\~{q6 Xqe~Y
w1" 6-!+ , &   <'5!%-! 0"  "2 <  5  2 "!&
<" 4 *V43"60".R% 0
  &
&* 07*E=
rYy xj$gqY|6$uw\q6XXvex6Iy {e v
{gq6Yg` uwz6;$gqYg6Iuj
4Z* 0'<0<"5!+*-!+0"  "24 '< <"
<W40"***0025=*kj5  &* 7 <'05 
" &&* @74&607
!+%!+0  "2 <" +9 &6% * E=
rYy xB`xeqgv ~{v6v` y {`sXXeXy { X{
B&6%   V* 5  &
" 5( "!% ,2 (' "!&* " 3" "!/ 0'<'0E=

    
        
*_ , 1" 3"5  
 !% &
&  0*'U 8 7 2 &* 07*J
*  7*5 2,( 2"
+   *<0
0`R%I0,*' 7L=
G0240)( 0'<!%9 2 1  !QU 
W('*'<'&!+' "!&* " 3 !7  2 &* @

*( "! 
07*   V* <" 5 * "*<'00.YR-* 0, O= kwJ"2,.* "!+1'0EU "X * * 7S(!+07( 0!+&* 07*
 !- 8&*  f
-  (* "!% &*!+' "!7  24 '&* 07J J *"!73"&*!% !E" )* * &*  E=
j0<".!QN 
0!:(!%7
<"!Q 043"6+ 8&* 
8 Z. * < 8 &* 
} L=
cB4&07YR: 0<"&*  8<  2 &* @E48&
0*0'& <'0,&60240W "!Q( 0" <'0!+''='cB80".R% 0
"g :  IOURQ'
I0,&60E'40".R% 0[ '*EU24 ('  " 1"f"(* "!%92%!+0<5"J07.YR-* 0<"

&
* !- 01"!%9*#- &60)( !% &*!+' "! 7 24 '&* 07*.  < 84`% 2,( 0E='`0.R%* 0[ '
(!+0(*0"!+&* 0E* "e+2,(*0"!- V <'0\=
%! 0,&07YR: 0<&  *J<  2 &* @E4  2 807.YR-*I0'T ' * " 8!%('*6% 8
&
2,.' 0'J 4 '  7='\ &0YR:
I0,<&* * *&*  M 5 0'8&6025( 0!I 2 "
 0',F *
M,*"6*w 
Q*j\3"W*0 94< !- 1" <0'(
0!7*(*  0<"e- 2,( 0EU *
0)( 0"!\
( 0 &* @740!- % &* @74<'5 4 '  E=_* W7 1'!+ ,'KnJ2%!% 5 8&* 
8<',  I0) *"6<'"
9"!:. 0`<&  *( !-  7 2 &* @7=

:        $         -    3 " *       $ 7  
  $            &        

2           (   & $  

c 80.R%I0[W(! 0'<"&5"T  " 0"!E"


%!%&
"! 0M'*0EU *&* ** *U <"( <"  <'0<5
B
a*0!+ M 0'(* "!%92-! 0'8<'"`0.YR-* 0[E=_
0'H"g "Q  $ J
07J07.YR-* 0'' 7
(*"! 
07*   V* <0'J3*W* '40.YR% 0[W(* !- 5(!+07( 0!+&  07 !7  2 &* 07*J<
0.YR-*I0'T   " =_ 4 '&
&  0*J<"
 "g
+":* *I77 &*  M*"4&
2,.' 0<5 0&
  V* &* @7'U
0!- + '&* @7'U
 "2 7]
0EU &
0" 0"!0-!% " '(* "!-  &* <5"80.R%* 0  * |=6b/0<0 0'
&0"25( 0"!I+ "2 7I0' 
 "!Q(
0 '<07!+( 0'<!QN  2,( 2"
+ "!  &!+ "*<'0W &   
"* 7\(*! 
07* "  V* <" 7
 42. !+107U  !E,
:*" Ea &
"!E29J *&*   5

&*!+' '&
&  @8<6% 8 7 24 '&* 0'=_* 8&   H"$
:*" $7*? 6+"( !% 0-!% 
'&&* 07*'U *&*  M  <'05 " 1* 8&602.' * &* 07J<6+ 8 '&&* 0E*=
[ 
cB80.R%I0[W(! 0'<"&5"T  " 0"!OU  2 <'0" " 'EU

%!+,oU oM}n*U o*9"2.0
 *&* ** *=`"  ,&
2.' &074`% 2,(
0*17f 0(* !%9"2*%!+0'
(&* #: &
<'087460.R%I0W"E= !+ 5"
0'(* "!%92-! 0'4(*'&  #- &0'J"'
240"2 0)( !I- &* !QU @7 0Wa *M"J 7,3"60".R%I0W"W(! 0<7&  !+97=
G .R%  <'0,"6* 7 0.!-"`% "2( 0 "!%280' 4# 0!-2 <"07*<' ,3"W(! 0<*& "
0.YR-*I0W '\=
_* 8#+0!-2 <0E
<" <""`0.YR-*I0W '+ "*&* *-! 0#+ *l* &*!+"27 07U* "(a  W"
0EU
<&!+27 07U
M8 " ('a* , &
!+0\=_* &0 '&&* @78<5 8&* %! 0#% 
4"8&* &  0<5
# 0!-2 <07 < 5 '\=66+ 8&* %!+0#+  8&60!:!%(*0*<4&074&* *-!+0}(* "!%92-! 08<
0.YR-*I0[E=_ <!% '&  @4<, 8&* %!+0#+  8 '( '&  #- &
W(
0!\;   0!+"! 0
*?'('!+*  <04<'!% '&  @742    1 <'0'=_ )7 1!+ ,K:CW2%!% 5 8&** %!+0'T#+ *
<, 4# 0"!:2 <07 <" [ '\=
b\0'<0 0';% "2,( 0'"
07!% % 0'8  24027I0<", &  0<'"`0.YR-* 0[E=
240"2 0<" "!-!% *3")(* "!+ I0<'0' 0'J0".R%I0J[
I02 <5 5a*0!+ <
"!-!% "3"<'"`  "2 7=*G0 *&*7+"2
 7U 0'J0".R%I0';[ ',&*!+ <'08"8< #+"!%
 
240"2 0';% "" 2 240W2402"
 0<5  &* 0\= G020W!%  <'0EUI0<'0' 0'J0".R% 0
 
 "!:( 0 <'0!%U *&   
05 3*"  0. * <'048< #%!+7+80.YR%I0';[ 'EU  9"
 *& ! 07 V* <'0=
_ 080.YR-* 0';[ '*)(*'<'7  &* !**T# 0!-2 J<07 <" 8< #+"!+
+2802"
 0='
  &  0<5 W(!- 2"!+ 4#+0!:2 <"07*<' <540".R%I0W"W(*<5!%%!+  !  ,**  <'0
" 1 0<5 0'J0%!+0'J<'0( "!%92%!+0';*Iy e`v`gy uwv[Mqe{v"v6 q 7egq$y 6=*( "!+9"2%!+0
$y Xev6gy ujvT(*'&  #- &
5'J% 2,(*0<"('*Z8<'5F I$F W(* "!+ 2,(*V* "!\ 07(*"!+ '&  @7
<60".R% 0[ '\=cB;- "2,( 05(*'&* #- & <0)(*0"!7"*( "!%92-! 0'qX{vv6 q 7egq$y 6
<'(Z8<*Iy `ev`|*y ujv U*"2(*V "!+9,*(!- 2!&* &  0<5 4# 0!-2 <"07*< E=_* W7 17!% K
CW26-!%  gq`y ujv U *Iy eev`|*y ujv[Mqe{v"v6 q egq|y 6=

c * 8#%0"!-2 <0E < 5" 'W( 0<!QN 5!+   V* !  @7 0W 4 *VU!+7(*% ! 
5"'f2"! 0
B
<*+"!-2  <0<4 & 'U 0Wa & !/'4&* &* 0,&0
:N$*0\=*f2"!+0<&  &  0J 
(&* #: &
4*(* "!+92%! 0W XXe{+=  7
<05 e6X7``{(
0' % 0EU ( '&  #- &
5'
f'2!%0<"&  &  0=
k6JKnT'( '&* #- & 5.'*&* &07
:N|0E=*[ 7
<05 4# 0"!:2 <"0E
<"
  ,!+(  529J<"5* 4 *VU 
5!%7(  " 8&** %!+0#+  J<"6&* &  07U'( "!+0) 0 
!+7(   !+ !+<'0,<'4#%  E=

c * 8#%0"!-2 <0E < 5" 'W 0* 2,(!-,** , 8&** %!+0#+  =/0'<!ON  "!'# 0!:2 <
B
( 0!\* U <'0'U
%!+805 8&** %!+0#+ *J<5 8#+0"!:2 <0E < [ '\=_* W7 1!+ ,KQ
2%!+  " J<5 83 &
4# 07!-2 J<0E
<" (*0 .' '=

60".R%I0W %  <0240'<0'J3*,(&* #- &


"J'.*&
07YR: 0<#+  8 5* "!O=
 240<'0K"$ 3 B="|;9 3 j 3 
< &
3*5 *  T#% *J<", &*!+"2+0 " ('a*
M4 " (a , 5*0}=' 280'<'0 3 3 B<
"$;
9 3 [j 3 
< &
3" W   T#+ 


<&!+27 0, " (a M4 (a  & "!+0E='cBJ "!%&"!\240'<'05 &0"2,.'  &* @E8<5 0'J<0'
+"!- 0!%U 0,35  <" & 3**,* "!%9 8&* %! 0#%  =
_* (*'&  #- &
'&  @8<'520'<'007.'!%
&!- .5 J " '&&* 07J<5 0(* "!+92*%!+0'J<
<'!+ '&  @7"=0"!7XR%"25( 07U&6074 240'<
0 "$G 3 B=
"|;
9 3 j 3 U 5 17
0!%  0
(* "!+9"2*%!+0'v`~Ygveqey  XXqegqIy Uve~Ygv`qXXy X eq q6u`7X$qY$y 6UM eXq )*v6g
egq$y 6
=
b/ "2,. Z"U
 )(<,'( '&  #- &
"!&** " 3 !'#+0!:2 <0E < ,(*'&  #- &

<05 
<'!+ '&&* 07*8<, T#+ **0W&
 "!- 8&60720&
"!+07U (&* #- &
&* @78 7(!%0( '<' <'"
240'<'0W *& !%"2"
+ 5  #: &* &   &* <"60".R%I0[E=
j
4X+I'P" : E I7MTh
*_ ,!-& * W( !% 5* "!0.R-*I0'H"g "Q  I"M;[ ,42 M8* 2  "! 5 5*
'<' )( !+
&** " 3 !0.R%I0} O=_ < #+"!+*&* W(!- &* (* "6 5 *&    @78<'"`0.YR-* 0 '\=
1.
2.
3.
4.
5.
3

crear el objeto fuente con las capacidades apropiadas


crear el objeto Alpha
crear el objeto Interpolator que referencia al objeto Alpha y al objeto fuente
aadir lmites al objeto Interpolator
aadir el objeto Interpolator al escenario grfico

% ,",
"4h 'M,j'I% E"g :
7 I

[ 0'&*Y(("= R% *  4eR%"2,( 0<5*0,<5 &   j+% I"g I":* IO=_ 


& " 
 `#%!% <","!+ 0eR=
!+" 0`R7! 0+ <0W(*0"!\*0J07.YR-* 05w' % E"g I: 7 I"M
[W'* 8 V( 0!\2 
I0\=
F46+  (  &
&* @7'U*"`0.YR-*I0#:
 ,4"4F+7 6 7-8 "U 3) &*  5
&
"( &* < <*8
7:9ww;
";
>9&7^=
" 3 =Xh 1""
0'80-!+0 "!Q( 0" '<'0!%8 &6%f 7

0".!+<" #+!%
 80.YR-*I0T#-"
+E=/0!eR%2( 0EU 8#:*7+W(* "!% 540".R% 0
G7 7S "g
":*" I'40.YR-*I
0  "- |=cB80.R-*I0) :  I7"  &
&
 0 5 0'
  0"!+8<'40.R%* 0#-%,.  97 <'0*4e   0"!\" '*M4 0T  " 0"!-83",
(!+0( 00.R%I0} :  $E&0
%  E=
*
:  $7"<'*#- 5 0'(+0T#- " J<5   2 '&  @7"=j8"& 0,<
j' - E " :  I7QU "e0.YR-* 0,(*'&  #- &
5 0'89" 1' 0'  &* eM;#% "`<W 5! 0 &* @7='
 ,&0
%! 0" 5  " 2 '&  @4&07!%(&6I05 `% 25( 0M4&@240*,240 !+9

 
 "!:( 0 <'0!< <5,("I0,< #- <0)a + 60%! 05(*'&* #- & 
<'0W ;#+  J<"5
# 0!-2 <07 < 57
\  (  &
&* @7** , J  &
&* 07 (
07!"<*#+'&`+0<"j+% I "g I":* IE&607'
9 1 05 &  6<'&
!%0M49*1"' 0#- * "`<C7 * ,!+0 '&  @74&0"25(  ='R-W(
0!
< #%'&6I0<5!+0 &* @E44"6eR% =F`0.YR-* 05 *  " '&&* 07 )(* "!+ 5!+0 "!
&0
:N|' "2"
+ e6X7e
Z
Q /&07',( !- 0'<'0,<,"2  I0 'o7= o'o'oW2    1'*<'0'
=
_* &
02.' * &* @74<6 0'J<'0'J0.R%I0'J&*!%' "!+9,"6*#+'&` 04 '  6<5" W! 0 &* @E
&0"25(  & '<' W2 
 0E=`&* &  0 5!+"( +&0E% 2+E=F
!+ + <0)(* "!%&
,3
!+" 0`R7 95240 ' "*<0'*&07% 27 7U*0,&6072406
W(* "!+ !+ M4"2,(*V* "!+ <W* *0E=
 !+ 1247 0<,B@'< 1'0,K{n 26-!%  24Z 0'<'0~Ygv`qv ~v6Xv`Fgq6e[<5  (  &
&* @7
[ 0'&*Y(("= R% *  =
Fragmento de Cdigo 5-1, usar un RotationInterpolator y un Alpha en un Reloj (de
ClockApp)

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|


t \gveqgvj$vB|XX6e$XvBX|q`X~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t 6~Y|veqvq6gev6gq6g6$uwF|`ejy Iwqq``y y |y v

t *|q`g6IuwFg6ew6Op `y hXv{Wgq66IuwF|`eeg-
t Qp `y `t {vY$q6Xq``y y ggq6Yg6$uwF|`et eG ?A@NBY  ? F BO@ / E %
 t
t 6~Y|veqv XXqj$q~$y `6YX |qgvXy Ijqhv$y exX uy X{gv
 
  t eqGq6 eXqG[v{ `qB+ Q 
qR %
e t
t 6~Y|veqv[y Yv6$ qg6Qp|v`~ X xXv|q`` Y g$e |Ygq$y jq6X6 Q$qXsXy
P
zt Ygq$y  {gv6$ q|` gX {hv Xq$y 6 {v6$X6 qX6$gq6 eq
Y6Qp `y Y-
tgX {It vX ~YXvXx6` y 
*6eYxe$XvY*6ex6y Y XXv6gv6gI%
t
t gqe{v6u` vY~v`Xv6gqe
P
t}6Lp XX t qexex`\ey x6g6Lp ey %
  t}6Lp ey 6t qex`xe\`y x` YvY}E `~{|$%
  t}6Lp XX t qexex`\ey x6$|Y Y-
t

t  YvX`{qrqGzv`g6$u`{$y uy {q$y 66F|`y Y~v`Xv6gq6`6t
 P

t 6Lp XX t ~{6uGey v`|%


e }
zt
X tgvX$XIw6Qp e
t  v6xGY
\gveqY|v ~vv`F|q`eGuwvY$exG\ `~{ `
_* W7 17!+ ,KQ*  &
" ,!-"*<'!- V* <" W( 0!/[ &  5 l 'o7=_* &
!% <"
!+" 0`R7J0".'  &   '( &6 <0"!/( 0!%3"I0<'0, !+" 0`R76+9,!+0+  <'0E=

*(!+01!% 2 ,[ 0&*Y((26%!- ,"*  *&     (  &


&* @8<w' + 7 "g
:  $7O=
0.YR-*I0) & U* 9< #- <0,74"e#- &*a*"! 0 [ 0&*= R-  U2*%!% 5  7('  &
'&  @29
* * 7V* '< <"`0.R%* 0Dw + 7 "g
+":  I7O=X0.R%* 0 &   5'40".R-I0
j' - E " :  I7\( "!+   2 "!& <" ,2 *'&    <"
!+" 0`RL= k 4"2. !+1'0EU

@" 0*
*
W80.YR-*+05 '*\=F0,*'&
 "!- 05 %   V* "!"0-! 0,0".R% 0W" 'W(* !+ ,&007! < * "!E 
2 *&*   U*&0"240
52 &* 0E
@5 "
+"!- 0!:2
 U I0'<0' 0'J0.R%I0;[

 &*! 0 V* 8&
074"
2402"
 0< !Q!+ 3<" (! 0'1!+ 24 E=
kG 42,. "! 107U&602,(* "!I% !\
0.YR-*I0[, a*0"!:!+ 5220!- <"6* 6+2 E=
[ 1" 8<'5 8&
"!+ '&`%"!QN % & 8(*&* " J<5 &* 
W[ & 07l

La seleccin del ngulos inicial y final de las manecillas,


la seleccin de los ejes de rotacin, y
la seleccin del recorte poligonal de varios componentes del reloj.


* *E
'7-' "8[ '
G<29J<5 <7!+ '&  @74<, 8&* %! 0#%  'U "*(! 01"!% "2 <0"!/('<','(*&* #- &
!\'
<'!+ '&  @78<", 5!+ 25( 5( !% 5 T#+  J<5 &*!%"27 0M8<"&*!%"2+05 '\=G'!+  5
<'!+ '&  @78<", 5!+ 25( U*e * " 0!"<5" '&
2.' 1"!% < " 2
 E=F4"&
0<
 
 "!:( 0 <'0!%;<""
240*  2 "
I0EU(* "!+'&
"!%9&6020*60.YR%I0 ' * "6 '&
 !+ !+ M
<&  !% "!% <5"T#+0"!-2 529* *-'!% gU &0280,78" 2"
<0W!% "g=

e   0"!"<5 <"'!% '&  @78<, ,!- 2,(* *5


%   V W(* "!+ 5 ( 0!+&* 0E   &  `M;#% "`<5
#+  4M(*0"!\ 0 7I0W <7!% '&* @7J<"5 5!+ "2,( 
 95  2  <'  5 52  <,<5 <'!+ '&  @7
<, 4#+ *E=_* W7 17!% 'K:52%!% 5"* 4# 0!-2 <0*< 5",&607
~Ygv`qXXy X eq q6u`EX|q$y 6BMv`~Ygv`qXXy  eq qu`7X|q$y 
= .*
!$  3""X  " 0!"<
 ,&
2. 5  * "!:2
 
%!%5 0'J<0'( !QN 0<0'8<'5 5!% "25( E=

*(!+01!% 2 <"XR%"2,( 07U h (a* ('(= R-  U <"2%!+ , #%&6I0,<'
~Ygv`qXXy X eq q6u`EX|q$y 6* 4#+0!-2 <'07 <" , '\=F46+5(!+01"!% "2 5a *MJ-!%
0.YR-*I0'T   " J~q6%=_ 0;%!+8&60&*aJ&
02 "
V*   2 240- "2( 0, 52 2
&007! <* '<X
'5M; ' eR% 8,( !+   0E='6&0& a(*"!- 0!/ 0% *W  1"* 5!+ "2,(
<7!+ '&* @78<"5 5!+ "2,(P
`WoU "6&0& a5 #+"!- 0"!"% *5"* <'!+ '&  @729 ?' 2 <5
!+ "25( 2  <,<'5 <7!% '&  @8<"  *& !%2"
 00,<''& !-2"
 0W"U
MJ&0'&*a<"
2< 0% "*5 52  <<5 <'!+ '&  @729 ?' 2 <'5 ,!- 2,(* 4&* "!I 0<5 <'!% '&  @
<  *& !%2
I00,<''&*!+2
I0W"=*B <' &0&*a* ! < <0J 17'*<'08"4&*!:
V* !E
'  E=_* W7 1!% K 2%!+ &* %!+0,
& * !%*<'!- V* <" J<"+  (  & '&  @"=

cB 04o7U 5 1"


<0J<"(ZJ<3"5 0'J&0& a8&02 *&7'U W(!- 2!- , 2 1""
 V 3" !+< /<'5 W7 1'!% K #:&
(
%!- < ,20'6-!+ *<0W ( 0' &* 07 ';<5 0'8&60&*a'=
&0'&*a*(*"!- 0"!OU 3")(!+0&
<"!+9,!% *- 0,&607
+ %74 "*
7 &* <5 ,!% "2,(* 7U

a 8 ' eR% <'0W ,2 M 0!/(* "!I+<"5 <" 6+ "*&  4"*(!- 2!\2 !+&
0E=_ 0'J0-!+0J<08&0'&a
&0"2 
V* 729 7 2
 M4 &  !% ='ch8
17'*<'0<(Z *0W240'6-!% <0U
I0<0'
 0'8&0'&*a*a ;  XR- <0W 52 *2 <"  "*&* 7=_ '(
0' &* 07 !% *% * J ,6 ' "!I 
<'!+ 7+, 
'1"" < 52  <<5 4#+  E=e[e#% "`<5 0'J<0'J 1"
<0'U*& '<' W 0<5 0
&0'&*aa 4 ' eR% <'0W 52 2 <" 6 *&  7=
3

Y#"e[ 


<'5 &*  <5 [8&60!-!+'&`+0E=** %!+0,&07 6-!:*&6I0!%8&*'.'!% 
(  &
&* 07 298&
0"2,'='cB* W( Z*+0"!+ <52ZI0'<0'U*"'2"!% <"  . 0'3"<"
!+*#+!+*&  * 1"' +7Ua &
,`%!+ ". eR+0#+9'&* 6<'5240'< #- & "!E80.R%I0W"W(* !%
(*"! 
07*   V* !\807.YR-*I0) )( "!+ &  " 3' ! 7(  &
&* @7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"[ '
7? % " <'Ele?jQp$ve~
*_ &*  4 ',&0  !I+,;  " 0!"<"4- "2(*0,;   0"!\"| ';  " 0! !+ "*10
o Dn U *&    *0=60".R%I0W ,8*#+&6% * "2"
+5* 4#-*&* @78<"% "2,( 0,3"
1*"!+ 4   0"!%84"
!+ 7
10
0 x*oE= >
n yQ=ch*
0&
02f"8<5")(! 07( 0!+&* 0 4 * " 0!%
 )( "!+ 5 0'8&6025(
07!I+ "2 "
 0';<""
 "!:( 0 <07!O=_ 8&
"!% &6 "!QN % & 'J<'"`0.YR-*+0
 , 98<'+!:2* '<' (
07!\( !%9"2*-! 0'8<'#- .' (
0!"
* "!- 0\=
`q`|
G07
-!- M*5"80.R%* 0[ ',&04 240<"P`D$hBkh$ w>6j_jU* 007(*B07'
D`,Kn*U

 *&*!+   1*[(a G!+ *- 07!


 `Pn6o'ooU
MJI0<0 0J<"29(* !-92*-!+0!`WoU* ?&
"(
 0
k+ !I$bF 2E=
k+ !I$bF 2
  &
&* 07* 4"
2407247
I0<&02 V*0< (! 0'1"!% "2 E=
`q`Iy { eXX{  Y[y ~YgveqXXy  eXqegq$y Y
\ &0 6-!:*&6I07!"
@" 0 0"2 5 0'0(G075 *& !+   1*[ (a 7B!% % 04&0240
(* "!+9"2*%!+0''U
  &
&* 07*  240'<'05 )$hBkh$ w>
 6j_}M4 * 1* o I0<0' 0'

<"29(* !-92*-!+0 *?&


( 0, k "!I$bF 2=
`q`Iy { eXX{  Yw|Iy X`v6y uv `heXqX{v"v6 q egq$y 66
`XBy ~{|veqXXy  eXq67egqX|y `6X 6XBy Y~Ygv`qXXy X eq q6uGe7X|q$y 6
`Xq XXq l ?jve|q|y `

G07
-!- M*5" 00.R%* 04[ (a* M8* '&
&  0  280<'0, }|[Bkh|G
`q`Iy { eXX{ y {
uwexev
X 6Xj|$y `Xv6gy ujv
 Yh`qXYv6"v q egqX|y `
`XBy ~{|veqXXy  eXq67egqX|y `6X 6XBy Y~Ygv`qXXy X eq q6uGe7X|q$y 6
`Xq XXq l ?jve|q|y `6X 6Gxev`~YgveqXy Y `q7egq|y `6
`Xxev`~Ygv`qXy  eXq quG`egq$y 66 `Gq6 Xq  ) v6|7X|qYIy 6
\ &0 6-!:*&6I07!I02 4 0<0 0(* "!+92*%!+0'J<*#- <'0'(*0"!7 * "!- 0E=

j86j_'=

_  W !%&  6<'W4Z*+0<0J<"4 '*


< 5" 0<6+02Z 0<0;% "*&0"!:!+'( 07 < +52Z*+0<0`v3"<* ' *5
B
  0"!<"e- (
0,3"&0"!:!+'(
0E
<"  "*( "!%92%! 0,<"
2ZI0<0{v+=
e6 veq6F|y ey vex6g
G02,(!:".  0.YR-I0, " (a 5a 4#- "  V* <0I0 " 2"
+* '&`- ' < <\=
rYy x{v eq l ?FXv67egq$y 6e$ 6Gq6 eq + ?jv7egq|y 6
kj" '&&* 07* "X  " 0!"< " (a  *B'!% *- 074 "e * " 0!(*&* #: &
<'0E=
rYy x{v eq  ) v6g
e|qYIy e$ 6Xq eXq  )*v6gegqX$y 
kj" '&&* 07* "X  " 0!"< " (a $!+0EB!% % 04 "e   0"!7( '&* #- & <'0\=
rYy x{v$ve~Y|veqXy  `q7egq|y 6e$ YBxXv`~Ygveqey  eqegqIy 
kj" '&&* 07* "X  " 0!"<<&!+   1 [(a B'!% % 07 e * " 0!(&* #- &
<0E=
rYy x{v$ve~Y|veqXy  `q q6u`7egq|y `e$ 6GxXv`~YgveqeXy  `Yq qu`EX|qY$y 6
kj" '&&* 0* "e * " 0!"<<&!+   1  (a G 25(G'!% % 074 e * " 0!7(& #- &
<'0E=
rYy x{v ~Ygv`qXy  `qe|q|y 6e$ Y[y X~YgveqXy  eq
egq|y 6Y
kj" '&&* 07* "X  " 0!"<5 &*!+'  *1 [(a G!+ % 074 "e * " 0!(&* #: &
<0E=
rYy x{v ~Ygv`qXy  `q qu`egqX|y 6e$ Y[y X~YgveqeYy  eq q6u6egqIy 6
kj" '&&* 07* "X  " 0!"<5 &*!+'  *1 [(a w 2,(G'!% *- 078 "e * " 0!7(& #- &
<'0E=
rYy x{vIYeX6e{$$y {
e6e6eg
kj" '&&* 07* "X  " 0!"<5 007(*B07'
" "e * " 0!7(&* #: &
<'0E=
rYy x{v  Xx`v6$y uj`xeve
kj" '&&* 07* "
240'<'0, "6('&  #- &
<'0,46+ ! 1'2
I0\=\ )(<
"!
|ThBkh|G j8
 6j_wU'hThBkh|G j>
 6j_'wU
0WT   0"! <", 0J<'0

DECREASING_ENABLE - Especifica que se usan las fases 3 y 4


INCREASING_ENABLE - Especifica que se usan las fases 1 y 2.

rYy x{vIqXYv"v6 q 7egq$y 6e$ 6heqe{v6"v q e|q|y 6


kj" '&&* 07* "X  " 0!"<W(a  7w" M'B'!% *- 074 "e * " 0!(*&* #: &
<'0E=
rYy x{v q6 gy ujv6I `Xgq`y ujve
kj" '&&* 07* "` "!I$bF 2 e * " 0!(*'&  #- &
<07  ! $b 24  &
&* 07* 5 5.   0&
! 0'
(* "!+ I0<'0' 0'8&9" &* 0!+" % *0'8 `% "2,(
0EU "X  " 0!\( 0!"<" #-&6I0, 5a*0!% <
"!-!% "3"<'"`  "2 7=
rYy x{v$y eXv6gy ujv` 6Xj|Iy eev`|*y ujve
kj" '&&* 07* "X  " 0!%!- 11"!IbF 2 e   0"!'(*'&* #% &
<0\=
| eqXXrq6 v6g
\ 4#- &* @74<'* ' *5;  " 0!7%!%o7U oM}n U oW &* ** *'U.  "*<'0'  5a*0!%
'&`- "eMJI0'<0' 0'(* "!%9"2%!+0'8 ".' '&* <'0(* "!%  0.YR-* 0W \=
| eqXXrq6 v6$ 6YGqg*y ujve
\ 4#- &* @74<'* ' *5;  " 0!7%!%o7U oM}n U oW &* ** *'U.  "*<'0'  5a*0!%
'&`- "eMJI0'<0' 0'(* "!%9"2%!+0'8 ".' '&* <'0(* "!%  0.YR-* 0W \=
[ '
';5G, I+ 7
I"|
I:*" $7
*_ W7 17!+ ,KQ52%!% W 8&* 
J<'" "|
:*" I77 0(* 3*+. '
M8<'
 %   < <\=F46% 8#: 1!% 7U
 W(<4 "!35a M' Wno&   H"|
:* $7OU6M40

0JI0<  J*'.*&* *J<, &  
 "g
+":* $7L=b/ 2.' Z'U* &*  4"*
*?
+ * @4<'}*' 7O=*_ 0J<0!%'&`+9 1' 0'J
02,.!+ <'0!%7(!% 
 4&*  
"g :  I<'5 %   < <EU 0J0%! 0'4!%&6+9 17 0'!%(!+ % "4&*  H
 "g
+:* *I7
.9 &
=

< "g : 7 I75"* 7\(*! 


0E* "  V* <0,&
0'4< ( "!% <'0!/(* "!% <(! + !
B
&
<" 52 "!+&
0E='F4 2Z* 0'<'05eg`~ve $y u` `U
<"W'40.YR% 0K"g :  $7&607-!+0" *
0.YR-*I0W ', 
0&  <'0)(* !+ * "."!"6"X  " 0! '&6%   EU XR:*6 5 8#:*+
. *9"*<'0' e * " 0!E EU  0*&!%' eR:*+ 4<" (* "!% <0"!E  2 !%&0* 1"' +
52"*083 5a M*  "!-2 * <0" " =`h 1* < T#: &* 0E* "  <' <J

(!+0(*0"!+&* 0E* 4 &*  
 "|
:  I7O=*_* 524 M*0"!QN <, &025(
0!I+ 2 "
I0*
 2,( "2
 4&
<" &*  ,
< ' < " "g
+":  *I7L=
_* ,2 M 0!QN <, 0J07.YR-I0'J<'" "g
+":*" I7 " 24 '&7 74<0'T  " 0!+43" , %   V* 
&0"20W 0'(" 0T#- " '(* "!% ,  &
&  @ !:( 0 < E=0"!7XR-25( 07U*
j' - E " :  I7"1" "!+<' <0'49"*1"' 0'4307 08*? %!%20'J<5 W! 0 '&  @7
(!+0(*0"!+&* 0E* < W( 0!7+
 "g "Q  IO=/0!&
<" 524 !+&07U*60.R%IK
0 "g ":*  7&607-! 0"
"X   0"!\"<*407.R-*I0W Ma* '&
" XR:* 5! 0% *I0!- 0, 7(!+0E( <05 40.R%I0
%*`+-8 "J#-"* E=
kG6"  " 0!E" ,Jo7U  07*&
J
W* 5" 0<5 0
  0"!+'
6"e * " 0!E ,Wn*U
 5
-   V "`0%! 0   0"!O= !% , 0T   0!+","
%!+o
M)n*U " "|
: 7 I77 
 "!:(
0 5  ' !Q247+:!+W 0J<'0T  " 0"!-. *9"*<'0'
,
  0"!\" 'M %   V* X   0!3*5!%' + 5(* "!% "6 eR:* <"`0.YR-* 04#:7 
\ < & !: ( &* @781*"!% "`<
 "|
:* I7\ 0<
&*!- .W. " 8&   
/J
 F "g
:*" $7/ %D "g I"Q  IL=
/J
G" D "g :
7 I7  15 0
%!-, 0*0<0a' R+0'J<"60".R%I0WJ J#-"
+W.* *9"*<'0'
,4"e * " 0!7 7( 0"!E 0
  07U
0*,a '&)
17' 5 
 !O(
0 '&  @744'6+ &*  7=
 -!+ 43*4  !- J<"5 8&* 
H
 "g "Q
7 I"078* 2  "!+U
 2.' Z78 
< #+"!+*&* 4  1""
0'8<'   '=_  17 "
 + ". 52,-!+ ,  1"" 8<'5 
< #+"!+*&* J7
%!+&  *H
 "|
:  I7O=
Clase Interpolator

6 6 {v6$X6 qXg`


*qY$ {v6I6 q6
*Xy $y ` gv6I` q6

gqYIy 6 {v6I6 qg`


{~ q` v {v6I6 q6
y g~Y{"q Xv {gv6$ qg`

usada para

tipo de objeto fuente

cambia el color difuso de un objeto(s)

Material

Clase Abstracta

TransformGroup

cambia la posicin de un objeto(s)

TransformGroup

cambia la rotacin (orientacin) de un


objeto(s)

TransformGroup

cambia el tamao de un objeto(s)

TransformGroup

elige uno (cambia) entre una coleccin de Switch

objetos

gq6YXq6gv6X~ {gv6$6 q6


cambia la transparencia de un objeto(s)
TransparencyAttributes
*(!+01!% 2 <"XR%"2,( 07U g
 !:(*0" * 0"!|('("= R% *  U
<"2%!%   8&   *0K
". %!% '&`+ H
 "| :  $"<'5 4+ ".'  
 "!- 0!O=j4 W(! 01"!% "2 U*& < 0.YR-*I0
"g :  I7 9< !- 1" <'0)( 0!E"J
0 0,0".R%I0W"E=_ ) 1"'!+ K:52,%!+ <0'

&
* !% <"!- V* < 8<
 "|
+":*" *I7|"=_
0'8& "2. 04 W( 0'* &  @U 5! 0+ '&* @7'U
 
&
" 7U "6&0" 0"!OU %!% " (* "!+7 &* U
M8"60".R% 0  *  < "!-!- .  , . XR%0\0E
!+   V* <'0(*0"!\ 0';07.R% 0,/ + I "g
":*" IOU"j + 7I "
+":   QU
" F "|
I:*" I7QUB S "g :  $LU
%*" 7 M "g I":*"  QUM
/J
 F "g
:*" $7OU!%( '&`-  27 E=

G

';WF + 4E85 ,[ 
"g+":*" $7
_ 080.YR-* 0'H"g ":*" I" <'"!-  7'U
M8
5!+" '&* 0* 8<"&
"!+&
7U 0.YR-* 0', O=
/0!E 0+ "
I07U'*
!"07.YR%I0'H
 "g ":*"  "< 5 *1' ! 5 0'2 280'!- 
1'0'J<
(!+01!% 2 '&  @3"W  !"0".R% 0} 7O=eG<"249J<Z6 0''Ua *M!-  10'8<'
(!+01!% 2 '&  @0
 "| :  I7"81""!% "U
M!- 1'08'( '&N #- &0( !%  " 17' 8&* 

"g :  IL=
cB!- 
1'0)( 0 7 &* "6<')(!+0'1!% 2 &* @74<'
 "| : 7 I7 0< "!  &*% <"3""
0.YR-*IK
0 "| :  $E&0
%  "X   0"!< 807.YR-*I0'T#-"
+7=/0'<!QN "20("  "!73"
"6F+*`+-8 7;#-
 <5"5w' + E "g
-* I7" W(<W
%   V
"!\( !%
%!+  < "!"`07.YR-*I0 '  " <"298<5 5!+0+ &* @7,(!+07( 0!+&* 07* '<' )(
07!7" "|
:* I7O=
\I0) 0,T *"!+< <\=`0.YR%I0,-+7 6 7-  &&  0* <'05""`0.YR-*I0,j%*`+-8 7

#-
  5!%'
&*!- .4&
<" ,2 "!+&
0743""60".R%I0W"6+9 &6% 0\=\I0
 "2. Z8 1 #: &
3"<0H
 "|
:  I7\ 0W('<'7J *! 2 2400.R-* 04#:%7=
%! 0W!- 
1'01""!% "6<'"  "|
:
7 I7 0
" &
&  0* !E "('! 07( < "27+5 
&
"( &* < <"J<"60.YR-*I0#-"
+E="   !7  a* '& !EI0W!%'  "!%94!:! 0"!7<'% 25( 0
<eR%'&**&* @E=
#" B+e474
"g I"Q
7 I
G0240W" &*   . %!% '&`+ UD"g
+":* +7"
@ 0
5* W( !% &*!+' "!\* .&  *
* * E=_* &  *
 "g
+":  * \(! 07( 0!+&  07* 
0 2
 52Z*I0<'0)(* "!+ W 0** "!- 0
<*J*.*&* 
=_*02Z* 0'<0f %  (* !% 5 
&*!- %!% <"*.*&*   0*
'2"!% 4 '3""NI=_* 52 M 0"!ON <'5 5 # 0!:2 &* @E, '&

!- W(* "!+ ,
&*!- . !E' *.*&*  
< "g ":* I(<"0.
%"! *<" B "(N %' 05 "
 !- 0!
_  W !%&  6<'W4Z*+0<0J<", ,[ 
H"g ":*" I
7? % " <'El*v6YqXrey 6
k'.*&*  8&
0*0'&* <" l 6 6 gv6$X` qX6+U q$ {|v` Y6 qYg6+U*ey |y 6 Yv6$6 qg+U
gqYIy 6 {v6I6 qg`%U ~q6 v {v6$ qg6+U Fy |~Yq Xv {gv6$6 q6+U
\ ` y Xv6q| {v6$ qg6+U
gq6YXq6gv6X~ {gv6$6 q6
&0"2,(
0!I+ "2  0K"g : 7 I74&    ".*6-!+ &6+ 3")(!+07( 0!+&* 0E W. 0'3*8<'
&0 6-!:*&
&* @7* <0(*0"! * !- 0' 
 !:(*0 <'0"!-8(&* "  V <0'=
rYy x{v eq6 eqGq` eqX
kj" '&&* 07* "`0.R%* 0, " (a <"+5 
 !O(
0 <0! 607.YR-*I0, " ('a* ,('&* #% & <0\=
G7 7S"g
":*" I
cB80.R%I0)B7 u "g+":*" $7- "*5'40.YR-* 0 +"- "&0"240*J#-
 E='\ 
"g : E I7&
2. &60 0!"< #-*
0<
 4+"- "6<'5 4#:* E=/6 0Wa '&
<"
G7 7S "g
":*" I+ "(*0<"!+0'0,&
0"20W  2  <0/=_* W( 0 *&* 4  "<5 &
"(* &* <" <
<4+!\29J<5"J07.YR-* 04 '  6<"
2 *2400".R%I
0  - "g=eG'N(*'U
G7 7S "g
":*" I&07" 4#:7

 +"- *(<, #%&6 "!7 529J<5"80.YR-* 04 '  |=

*_ ,  2 + &* @7483"5 0J0".R%I0T '   8&0'] +"- j0'<'B0"25(


0E*

07

0" 27 4 '  .' 8&   <'0 5  '2 * ""=
_* ,2 M 0!QN <, 0!-  10'8<')(!+017!+ 2 '&  @7(*0 7 &* " J07 !+*'  <'0<"5
&0"25( eR: < <<" &
* '   2 * < 
\
02.'!% <" =_ 5  '2 * &* @74; 4&6072,( eR%
3"4"` 2 <5"8& ('N - 0,%!+0EU " B "(N -' 0, =/0!eR%"2,( 0EU "6&0 0"!<5"
0.YR-*I0 '  "602.'!+ <'0, &0"2,.'  '&* @EJ<"&6025( 07*+J(*'& ' "!QU
< #: 
07U
M
"2.' +7='*G S " - 7 I7&
2. 0 "2
 5*0<"5 0';%!+8&072(*0"
+U*
&0" 0"!<" #- 
07U N*34&  !  J -* '&  08'8"
 "!% "2
 )(
0' .' ,35( "!%*V*&
3"*G7 7S "g
+": "  "/ 0, #%&6+  60".R%I0 ' * "g=
%! 0W!- 
1'0<"5(!+01"!% 2 &* @7( 0%"*&   2*08*?*@% &60, 0, 1!%1" "!607.YR%I0
4+"- e#-"
 <"`0.YR-* 05G7*7[=_ ) 1"'!% K{no526-!% ,"8<" 1!% 2 )( !+&* "
< &
 !- 01!+9*#- &0<5"G7 7S "g :
7 IM8<']
  ": j0'<'"G0"25( 07"

#-
 E=

 G7 7S"
+":*" * J<" #+"!+
 <0%!+0H"|
: 7 I78"e# 0"!-2 I0,<' 2Z*+0<0
ev+=_ 0'42Z 0'<'0'Jev<WG7 7S"g
+":  I7%  (* "!%92*-!+0'(*0"!\ 0 +0 5  6 
&0 0'2Z*I0<'0J{v
k'2 "!- 0<,B07 %!-*&6 07!+J<"WB S"g
:  I
7? % " <'El |v6$6 qg6
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
&60 0!"< #-*
0<"*407.YR-*I0
4+"- e#-"
 5 
 !O(
0  <'0" 0W  * !-2
+
%!+5 W(* "!%XR- <&0 0!%
(&* #: &
<'0 * *<05e   0"!1'7*"!% <0)( 0!760.YR-*I0[=
6 6 {v6$X6 qXg`I eqGq6 `Yq
 qv6Iy q`gq`|evg

G07
-!- M*5"4&60 0!O|
 "!:(*0" * 0"!"%!- ' "6&07 4#:*7 (&* #: &
< U4&0" 0"!\  &* "
*1!+0M"4&60 0!'#:  " .' *&60\=
6 6 {v6$X6 qXg`I eqGq6 `Yq
 qv6Iy q`gq`|ev {E6 6|z6q6 gE` 6
6 6$zY`vx` 6g
G07
-!- M*5"4&60 0!O|
 "!:(*0" * 0"!7&60E 4#-%'( '&  #- &
<' 7UM 0'8&0" 0"!%  &* "XM
#- "g=
_ 6+ 5 !+&* "6<'W4Z* 0'<'0'J<WG7 7S"g ":   
_
0'2Z*I0<'0'JevY
0 17*7 J&0E6 *&* 0J<5 0'J0%!+0' 
 "!Q( 0 <'0!%=
rY6y x{v E Yx676 6$|7` 6|zY6~{6 `|
kj" &
&* 07 ,"6&0" 0"!#- * 6<+5 +!Q( 0" * 0!O=
G0"!:!%'(
0E < +52Z 0'<'0,1'Ql`r6y xev E Xx` 6$I6 6$zY6~{6 6g
rY6y x{v q6 gE6 6$|76 6|zY~6 6g
kj" &
&* 07 ,"6&0" 0"!\  &  "`< 5 
 !O(
0  0"!O=
G0"!:!%'(
0E < +52Z 0'<'0,1'Ql`r6y xev |q`g ` |6 `$z{~{6 6g
rY6y x{v q6|evY$w |Rk gq6gXvYg
kj" &
&* 078"&6025(
0E 7 4#:+<"+5 
 !Q( 0" * 0!O=
G0"!:!%'(
0E < +52Z 0'<'0,1'Ql  qgv6$y q6evYg q`|ev$|
/* + I"g
":*" $7
/ % EI "
+":*" *I7  !ON 5 W( 0'* &* @8<"540".R%I0 '  "6 5 0W ! 1'0,<'54eR%E=_
(&* #: &
&* @78<'5 0'(+0T#- " J<5 5 
 "!:( 0 '&  @8 Wa* '&
&074<'0T   0"!+8<'
&0"2 4#- 0 +4MXR%<%!%  &* @7='e * " 0!\( 0!"<" #%&6I0,<'"XR-<"%!+ * &* @748
eR%X
 '
k'2 "!- 0<,B07 %!-*&6 07!+J<"}/' - E " :  I7
7? % " <'El |v6$6 qg6
\ &* 
< #-*5"8&02,( 0"! + 2 7 0,3",20'<" #- &
&602,( 07*7+<%!% 
 '&  @7
<F+7 6 7-8 ";#-*%,+!Q( 0"  <'0 0W  ' !:27 ,-!%,"(* "!"<"
( 0 &* 07*8'( '&* #- & <  3"5 * ""X  " 0!"1*"!% <'0)( 0!7"`0.R%* 0W 

(&* #: &


<'0=_* W(*0 &* @7 
 !Q( 0 <"  5 %   V W(* "!% 1*"!% !\ 4-!+  '&* @78 5 0
 "! 1'0<eR%X
 ' 0& " 0<eR%'( '&* #- & <05 %!+ * &* @'E<
 "g
+":*" I7O=
* Xy $y ` gv6I` q6$ `qGq6 `q{gqYg6$uwF|``gq`$Xvg
G07
-!- M*5"( 0'* % 07| "!Q( 0 I0!%!- ' &0 4#:*7 ,(&* #: &
< U&607XR-<'
%!+  '&  @( 0!< #-&6I0 GU'* )(
0'* &  @ &* "`<',oE= o #OUM* W( 0' &* @J#:  "6<'Dn*= o #O=
*Xy $y ` gv6I` q6$ `qGq6 `q{gqYg6$uwF|``gq`$Xv
gq6|6$uwz6qYsey G ?\ |q6 qX|y `| eqY6gq6 I eXy |y 66$ eqX6v6Yx
*Xy |y Y
G07
-!- M*5" 0)( 0'* % 07| "!Q( 0"  0!34  !QN "6&02(*07*
 %!% 
 &* 0E "`<
b!%  `#+0"!:28! 07(  !IQ/0 % 07;M4
<70'* % 07
/ 5 0W "! 10,<XR-<%!% * &* @7
(&* #: &
<'0E=
_  W !%&  6<'W4Z*+0<0J<")' % 7 "g "Q
7 I
< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "
+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*%!%0<" 2Z*+0<0Yv+=
rYy x{v sey G?/gq6Y qY$y 6eggq6|6$uwz6qYsey G?\ |q6 qX|y 6Y
kj" '&&* 07* "6eR%<%!%  '&* @7J<"+5 
 "!Q( 0 I0"!L=
rYy x{v E x*eXy $y 6e | eqY XXy |y 6Y
kj" '&&* 07* , W( 0'* &  @;#- "`< 5 
 !:( 0 I0"!L=
rYy x{v q6 ey Iy e | `qXXXy $y 6
kj" '&&* 07* , W( 0'* &  @  &  "6<' 5 
 "!Q( 0 I0!O=
rYy x{v q6|ev|ggq66IuwF|`egq6|evYg
kj" '&&* 07* , 4#-%<" 5 
 !:( 0 I0!L=
j' - E " :  I7
j0 *- 07g
 "!Q( 0 I0"!"  !QN 5 07!- % &* @7!+0 '&* 07* "`<580.R%I0 ' * "`
0.'!+W'
eR%E=_* (*'&  #- &
&* @8<'5 0('
I0T#:  " J<5 5 "!:(*0" &* @7J*5a '&
&
078<'0
  0"!+8<',9 17 074&602 8#: 0 "
 M'eR%<5 5! 0 '&  @7"=e   0"!/(
0!"<" #+'&6 0<"
eR%<'W! 0+ '&  @44"6eR%X
 (D(*0 % 0\=
k'2 "!- 0<,B07 %!-*&6 07!+J<"w++ 7 "g ":   

7? % " <'El |v6$6 qg6


\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
&602,( 07*7+5! 0 '&  07* 6<"
%*`+-8 "J#-"
+5 
 !Q( 0  <'0 0W   ' "!:247+7
%!%5(* "!"<",9"*1"' 0'
(&* #: &
<'0 3"5* 74e * " 0!"1""!% '<'0)( 0!760".R%I0W",( '&* #% &
<0'=F
9 1 05+"!:(*0" <0 W
-   V W(* !% 1""!% "!\* 5! 0+ '&  @8 0".!+"XR-N
 ( 0'&
6<'6%
"g :  IOU
0,eR%(*&* #- & <0,<5!+0 '&* @E=
gqYIy 6 {v6I6 qg`I `YqBq` `Yq
{gq{|`IuwFg6`q6|ev
G07
-!- M*5"!+0 % 0"|+!Q(*0" * 0"!-!- ' "6&07" 4#-
 (&* #: &
< "XR-<
! 0 '&  @7( 0!< #-&6I0, GU'49"*1' 0W25N| 240<oE= o #OUM"897
17 0)249*?' 240<"
C oY( !+ < *=
gqYIy 6 {v6I6 qg`I `YqBq` `Yq
{gq{|`IuwFg6`q6|evI
gq6|6$uwz6qYsey G ?\ Y|q|y 6| Xq uy Xy ueu X6 v | eq
ujqXsXy uGXu X6 ve
G07
-!- M*5" 0W!+0 % 0"g+"!:(*0" *I07!3*4  !QN "&602,( 0E 7 5!+0+ '&  0 6<'"
&0"25( 07*
 7=
_  W !%&  6<'W4Z*+0<0J<"}w % 7 "|
":*" I7
< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "
+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*-!+0<" 2Z*+0<0Yv+=
rYy x{v sey G?/ gq$y 6eggq{|`Iuwz64qsey G?/ |qY$y 6
kj" '&&* 07* "6eR%<5!+0 '&* @8<"+5 
 !O(
0 I0"!O=
rYy x{v  qsXy ueu X6 v6 $ `q6q`X6 ve
kj" '&&* 07* "69*1"' 0)29 ?' 240<, 5 "!Q( 0 I0!QU 7!% < 7 '=
rYy x{v  y ey uBXu 6 v6 $ eq6q66 ve
kj" '&&* 07* "69*1"' 0)25N| 280<"+5 
 !O(
07 I0"!QU*"!% '<" "=
rYy x{v q6|ev|ggq66IuwF|`egq6|evYg
kj" '&&* 07* "  0<0b!% 7
6# 0!:28! 0"((* "!% +5 
 !Q( 0 * 0!O=

" F"|
I:*" I7


 F"| :*" $7'  !- ` "24 7]
0,<540".R%I0  * "g=_* ,(*'&* #- &6 '&* @8<"5 0
(
I0T#: *  8<'5 ,+!Q( 0" &* @78 5a '& &0EJ<0T  " 0"!-878&02 #- 0 
 7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5  J"g
:  $
7? % " <'El |v6$6 qg6
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
&602,( 07*7+<5  &  <"
F+7 6 7-8 7;#:*+5 "!Q(
0 7
<0" 0W  * !-2
 ,
%!+W(* "!<'4   0"!+8<'

&
 '(*'&* #- & <0' 35 * 4"X  " 0"!1*!+ <'0}(
0!7"`0.YR-* 05 '*
(&* #: &
<'0='e * " 0!"<, & " 5 "!Q( 0 <'0, 5
%   V W(* !% 17*"!+ !E*  &  7
"`  "2 <&0'0! <"* <  0'&
"`<,
 "g ":* * O=
{~ q` v {v6I6 q6$ eqq eq
{*|q`g6$uwjg6eFq6gevX
G07
-!- M*5"8
&
 7|+!:( 0 I0!34  !QN " *0<0b!% 
6#+0!-2J!%0(8<"*J#-"
+
%!-, 0J<0T   0"!%"7U'* 524 -!- V8<'5 <
% < <7U''  &
" 525N|' 2 <,o7=+n#QU
M
*  &  ,29*? 2 <"n*= o*#O=
~{q` v {v6I6 q6$ eqq eq
{*|q`g6$uwjg6eFq6gevXI{*|q6Yg6$uz`qXsXy G ?\ ~q v
| eqXuGy ey u`u ~q6 v
$ `q ujqsXy uGeu ~q6 vX
Construye un nuevo scaleInterpolator que vara el componente de escala de su nodo
TransformGroup entre dos valores de escala (minimumScale y maximumScale).

k'2 "!- 0<)4Z* 0'<'0'J<5 " F"g


:*" I7

< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "


+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*%!%0<" 2Z*+0<0Yv+=
rYy x{v sey G?/ ~q v`|*|q`g6$uwz6qsey G?\ ~q ve
kj" '&&* 07* "6eR%<' & " W(* "!+ , 5 !:( 07 I0!O=
rYy x{v  qsXy ueu ~q6 v6| eqX`Y~q ve
kj" '&&* 07* ,  &
" 529 ?' 2 W(* "!% +5 
 "!:( 0 I0!O=
rYy x{v  y ey uBXu ~{q6 v6 $ `q`{~{q6 ve
kj" '&&* 07* ,  &
" 52WN| 2 W(* "!+  5 
 "!Q( 07 * 0"!O=
rYy x{v q6|ev|ggq66IuwF|`egq6|evYg
kj" '&&* 07* "ebF!+ 
6#+0"!Q28! 07'(;#-
 W( !%  5 "!:(*0" I07!O=

/J
 F"g
:*" $7
/J
 F"g
:*" $7/ 05+!:(*0" "
-!+<'0'T * " 0!%8&0240,0%! 00"|
:*" I7O=
kj" '&&* 07* 5 0<", 0a' R%0J<,"80.R%I0WJ W(* !+ 5!+7 <"!- V "!- 0\=_*0T  " 0!%J<"
'2.'!+ " ( !% &
2,.' "!7 W'a' R+0< #+"!+
 *<"+!-2 * 7" # 0!-2"2  <"  <" " <'0,"
!+ 7
10,oUo Dn Ugo5(*0"!E*f'2!+0<"5a' R%083"*  *60".R%I0WJ 7=
cB!- 
1'0)( 0 7 &* "'( '&N #- &0<W(!+0'1!% 2 '&  @4<,J
G" 'J "
+:* *I7E2 "
 
4" a*'&*a*0,<',3 "g "Q  I/
0,8 '&6- "  V <0,&* 7
<0,& 2. " f'2"! 0
a' R+0'J<'"60".R%I0WJ 7=*494 2,(
07!I 7 7U
 <' "!-2  7 0'T * " 0!%J<"52,.!- 6<'5
&0'2
+ '&* @4&* 7
<0 &*!+' "`07.YR-* 0<"5J G" D "g :
7 IL=X'N('U

/J , 0%  W  1f"a R%0, "
 J<"3" &!+'"  "g :  I7QU
0e" f'2"!+0<
a' R+0'8&
2. <(Z8<',3"
&*!%"`0.R%*+K
0 "g
+":*" I7QU "
I07*&
8*f2!%0<"
a' R+0'8"4"`0.YR-*+
0 "|
:* I7"<.*"!7 '&`%   V* <'0\=_ 8 7 eR% ,J3*)( 0'<"240'
(&* #: &
!\'8'.&07{RO'
 0<)N| <" &43 "g "Q  I\
%   V "!+9E=`.&07{RQ
I0
 5  2   ,4&07{RQ
I0,
'&* &* "`<")N| <" &
'=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5J
G" F"g I: 7 I
7? % " <'El |v6$6 qg6
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
 a R+0  '&
&  0* <0<"  0'<'0
`J  
 "!:( 0  <'0" 05  *' "!-2
 ,"
%!%5( "!\a R+08( '&  #- &
<'0' * "*<05"X  " 0"!
1*"!+ '<'0)(*0"!760.R%I0W"=
y g~Y{"q Xv {gv6$ qg`I eYqBq` `Yq
jy |~Ygq6gev

G07
-!- M*5"4k/J  &*aeVG  *Eg
+!Q( 0 *+0"!73"8  !QN *5N|*<" &
<"W 0'<'05k/J  &*a;#:* 
%!-oM, Kn U*<0E <)888" 'f2"!+0<5a R 0'J<"  0'<'0,k/J +& aJ#-
 E=
y g~Y{"q Xv {gv6$ qg`I eYqBq` `Yq
jy |~Ygq6gevIXy Ye|y g\ey x Yx`vs`
y qX|E`y x XxevsY
G07
-!- M*5"4k/J  &*ea VG  *Eg
+!Q( 0 *+0"!73"8  !QN N| <" &<"5*0'<'05
%!+5 0'J<'0'
  0"!+(!+07( 0!+&* 0E '<'0'=
_  W !%&  6<'W4Z*+0<0J<",J G *J"g I:* * 

< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "


+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*%!%0<" 2Z*+0<0Yv+=
rYy x{vY
y g/Xy x xevXsX$y {e$y  xXvXsY
kj" '&&* 07* " (!- 24"!/N|*< &
<Wa R+0)( "!% +5 
 "!Q( 0 I0"!L=
rYy x{vIYqeg\ey x xevXsX$y q xevsY
kj" '&&* 07* "
f' % 240}N| < &
<'Wa' R+0)(* !% 6%, "!Q(*0" *I0!O=
rYy x{v q6|ev| y g~YFgq`|XvX
kj" '&&* 07* , 4#-%<" 5 
 !:( 0 I0!L=
/J
_* &*  ,J  ,2%!+ , 3"N(*0"!%3" 5*%   V* "J G" F"g :*" I7 M
298 '<" +WB   j= J 
<!- * <W8+"JM48*(
<!%<&
"!+00
29!% "2 J<" &
" "!- 01"!+9*#- &0\=ch80.R%I0W/J ,(*<  &
&* 0E* "!&
"! 0EU" 0EU
0
29'U *&  
M*"*<'0I0'<'0''U  a' R%083"
5!% <"!: V* !%9=/07!"(6 0W80.R%I0
/J 4 W(<W
-   V "!" 0
 "g
+":* I7E80.YR%I0=
2Z* 0<0W29
&0"2,f2
 W  '<058qexex`E`y x6g'<"!:  <0<"5 &* 
W4 ""=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5J
7? % " <'El
jg6X
*
0'<'05J &607-! 0" & 96<' a' R%0J !+95!+7 <!- V* <0E='w #- WT  " 0!"<
  &
&* @8<"5a R%0 ;   0"!eJ  &*a \3W('<'  &
&* 0* !E8
@" 0Wa R%07U 0)(<"
  &
&* 0 "!&
"! 0,0W29a R+0'  "*<0)* 529 &
!% W( !+ 5 *<" & "!35a' R%0J
0
  &
&* 0 <'0'( "!% ,!% <"!- V* &* @7=
y g~Yeg

G07
-!- M*5" 0'<'0,k/8 +& a&0 0(* "!+924%!+0(
0!< #%'&6I0E=
y g~YeIy {eey ~{e\ey xe
G07
-!- M*5  &* "  V 5 0'<0,k/J +& a*
 <0W 0'N|
< &
J<"5a R+08'( '&  #- &
<0''=

CHILD_ALL todos los hijos son renderizados


CHILD_MASK se usa la mscada childMask para seleccionar los hijos a renderizar

CHILD_NONE no se renderiza ningn hijo.

y g~YeIy {eey ~{e\ey x :p|qrq


t {|y t y vY~Y`y x  qe

G07
-!- M*5  &* "  V 5 0'<0,k/J +& a*
 <0W 529 &
"!% M4N| <" &<",a' R%0
(&* #: &
<'0=
_  W !%&  6<'W4Z*+0<0J<",4
< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "
+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*%!%0<" 2Z*+0<0Yv+=
rYy x{vg/ey x  qX p|qXr{q
t {$y t y v~Xy x  qXX
kj" '&&* 07* , 529
&
!+ <'  '&
&  @78<5a' R%0=
rYy x{v @`y ~\ey x6$y {~Yey x`
kj" '&&* 07* "*N$
< &
<  &
&  @4<5a' R%083"'(*&* #- &
3"Z5a' R+0 !-9
!+7
<"!- V '<'0E=
k'2 "! 0,<h (* '&* <" <"J<",J
X 1?A@CB @ *\B JE6 P[^@ \ E
\(*&* #- & 3"*,6 ) 0'<'0}( !-2  5 '!**T   0!%J<
" '&
&  @4<'Wa' R%0J<
29 & !+ M4<5a' R%0 '&6% "
%*"+7 M "g
":*" * 
cB80.R%I0,F+7 "+7 M "g
+":*" $7%  W'5j0'<B0"25( 07"

%*"+7 M6|%: ' 4&60240J#-"
+E=\
 "g "Q
7 I7& "2. "e * " 0!"<",
%!+  ( !+7 &* <"60".R% 0#-
 E=9J<"580.XR%I0  * " (*'<4&025( !I% !\'
0.YR-*I0,j+*"+7 M6|--  I''=`GN(*'U"4F+**+ M "g
:  I7/(<"
*#+&6 ! 529J<"580.XR%I0  * "g=6b 2.' Z'U*<"."240'; 7 !&* <<0&
078< %I0'
240'<'08<%!% 
'(* "!+*&* 3")(<4 #-&6 "!7"X#-*&  0 2 +0M4"6 (*'&` 0<
!+7(!+*
 &* @E8<"`0.YR-* 04 '  |=F<!%*#- !I+ 5 (&* #- &
&* @78<'  <
G(* !+ 5296# 0!-2 & @780.'!%, &*  F+7 *+ M6I%% 
+=

c !- 
1'0)( 0 7 &* "6<')(!+0'1!% 2 &* @74<'F%*"+7 M "g
":*" I7 0 '1"!%'1' ! "
B
0.YR-*I0#:
 F+7 "+7 M6$%% '*I'8 2 " 0`R%0< '(*'&6I0<"`0.YR-* 0 ' * "g='\I0
J* 2  "! 5(!+0.' 2 5(*0+*&  6<'WB7 7S " ":*" IO=
k'2 "!- 0<,B07 %!-*&6 07!+J<"F+7 *+7 M"g :*" I7
7? % " <'El |v6$6 qg6
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
5 %!+ 
(* "!- 7 &* <"*407.YR%I0
%*"+7 M6|%: " ;#-"
 5 
 !Q( 0" *<0 0)   ' !Q247+-!%5,( !"<"4 * " 0!%
<4-!% " ( "!-  &* ,('&* #% & <'0 *
7 <'05e * " 0!"1*"!+ '<'0)(*0"!760.R%I0W"=
gq6YXq6gv6X~ {gv6$6 q6$ XXqq XXq
{*gq6Xq`|v`X~ |Iy e{gvXq6gevX
G07
-!- M*5"J%!+  '( "!%"*&`M"|
 "!Q( 0 I0!&
0* 4#-7+'(*'&  #- &
<' EU
%!+  ( !- "*&  52,NI 24 <oE= o*#M" %!% 
'( !- "*&  ,29*? 2 <"Dn*= o*#O=
gq6YXq6gv6X~ {gv6$6 q6$ XXqq XXq
{*gq6Xq`|v`X~ |Iy e{gvXq6gevXI
| eqXuGy ey u`ujgq6Yq6|v6X~ I eqX
ujqXsXy u`ujgq6YXq6gv~
G07
-!- M*5" 00.R%* 0%!+  '( !+*&`M"g
+"!Q(
0 I07!3"4  "!QN  "e%!%  ( !% &* <
4+"- e#-"
 
%!%<'0'T   0!%J<%!+ 7
'( "!- *&  7=
k'2 "!- 0<)4Z* 0'<'0'J<F%*"+ M "g I":*" I
< 5" 0<6+02Z 0<0;% "*54&0!-!%(*0*<" "
+52Z* 0'<'0`v*( !%9"2*:! 0
B
3"<* *" 5; * " 07!"<`%(
0,&0"!:!+'(
0E < + " (* "!+9"2*-!+0<" 2Z*+0<0Yv+=
rYy x{v  qsXy ueuj*|q6YXq6|v6Y~ $ eq`|gq6q`$v`X~
kj" '&&* 07* "X  " 0!E29*?' 240<'%!- " ( !- "*&* )( "!% +5 
 "!Q(
0  0"!L=
rYy x{v  y ey uBXujgqYXq`|v6~ | `qX$gq{Xq6gv~
kj" '&&* 07* "X  " 0!E25N| 240<%!+ 7
'( "!- 7 &* W(* !% 6%,+!Q( 0" *+0"!O=
rYy x{v q6|ev|ggq6q6gv6X~ |Iy e|vq6gevX
kj" '&&* 07* "`0.R%* 0b!% 
'( !+*&6M`I%!- .'  T#:
 )(* "!+ , 5 "!Q( 0 I0!O=

[ '
'- "g :
\ $7
*_ 8&* 
,%I"|
I:  $7 < #%!+ &* 4<'W 0'J0-! 0H"g : 7 I7"43*)('<'7
1 "!+<' !"<0J0W29T   0"!%(* "!+ 5 5 
 "!Q( 0 '&  @"=F6&0"!+ V*@4<' *  ,
(!+0(*0"!+&* 0E* , 8&* 
5%I "g
:  I7\(* !+ 5 5 "!Q( 0" '&* @78<"5 W( 0' &* @7'U <'5
! 0 '&  @7U
<", %!+ * &* @7JMJ<"5  &  7=_ 4#:
 <'W80.YR-*+0}%D "g "Q
7  7
80.YR-*+0j+*6 -8 73"*&
2,. 5 W(
0' &  @U 0"!- "
+ '&  @UM 
& " 7U
 17f'8*'  7(! 0E( <'07U( !+ *J0.R%I0a' R%0=
_ 080.YR-* 0',%I "|
I:
7 I7 " 2 &
" ""4&607{RQ
I0,<'4   0"!+U 0,<5 0'<'0''U
3"
07
-   V <'0(*0"!/(* "!%XR% (* "!% 5 5 
 "!Q(
0 '&  @"=FX   0"!\"< !Q2 3
<'0T   0"!+J
07
%   V <0'=_*0T   0!+8<')*<'0, 9478" !+  1'0<o7U o, Dn Uo
 *&* ** 0''U 3"*&0!-!%(*07 < "
!% "*1'0<5 0T   0"!+8<'"`07.YR-* 05 'E= (!- 2"!
*<'0<". 7 "!\';   0"!<o7UoM8" f % 240)<0,<".4+"!/';   0"!<Dn UoE=_ 0'
*<'0!+6% "
+J <.*781!+ .* !780"!+<""4&*!%&* +7460".R%I0%I "|
: " I7O=
_ 0T   0"!+8<'" ' <0,&0!-!%(*07 <74&60E 0'  " 0!+(* "!+ 5 T  "!- .' J<5 0'
(* "!+9"2*%!+0' ( 0"!7eR%"25( 07U'(
0'* &  @80W! 0% &* @7 F  <'05" 5 "!Q( 0" '& @7='iw *M"
  0"!<W(* "!%9"2%! 05(*&* #: &
<'0)(* "!% & < 4  " 0!"<"*<'0E='  <05&607 2 *M 0!
  0"!\ 1 "`0W2 0!73""e * " 0!E 'EU6M4"  <0* 1"' 7 7U
 "!%9 -   V* <'0=_ 0
*<'0J*'(*'&  #- &
880"!+<""U( "!% 37 08&
"2.' 0'J<"X  " 0"!\" 7U 
5 %   &
"
(* "!+eR% 8 <M* '&

 =
*( *  V*3' "! <'0<", ) 1!- 'Knn;2,%!% W 0'T * " 0!+;<"**<0W( "!% ,"
%D "
+":*" *I7"<W(
0* &
 @"= !% W(!+0(*@  0   %!+ % 0'U 
0" "2
  , %   V* " 
( 0 &* 07*JC7[='*( *6&
%!% 6<'5 4#: 1"'!%   0&  , W(
0'* &  @8<"60".R%I0  * "

0".!+5 0'T * " 0!% '*EU o7U o Dn U oE=F (* *6<"!%'& a0<5 4#- 1"'!+ 52%!+ 5 0
  0"!+8<'" '*<'0W * <0'( !- , 0J< % 
I0'T * " 0!+ '*< ,XR-"2,( 0E=_*
&0"2,.' * &* @78<5 0'T  " 0!%J<"**<'0M8<", 0(* "!+9"2*-!+0J<"
"<' !:2 7
 24 '&* @7"=

' 44" 3 % "W*%D"g


"Q  I
cj !/'40.YR%I0%D"g ":* I7"* 1*5 ,2 *2 5!%&
+ 3"0%! 0'80.R%I0'
"g :  IL=_* ,f &
< #+"!+7 &* J"*f'2"!+0<4   0"!% * <'0'( "!% , &  '  V* !7
0.YR-*I0%D "g
":*" $7
1.
2.
3.
4.

crear el objeto fuente con las capacidades apropiadas


crear el objeto Alpha
crear arrays de nudos y otros valores
crear el objeto pathInterpolator que referencia al objeto Alpha, al objeto fuente, y al
array de selecciones
5. aadir lmites al objeto Interpolator
6. aadir el objeto pathInterpolator al escenario grfico

*(!+01!% 2 <"XR%"2,( 0 w0-0 *-a6('("= R% *   %   V* 5'40".R%I0


j'-/+D "g I":* I"( "!+ , " 2 "!\80.R%I0)G7 -['&07f'2! 0,<'
  0"!+8<')( 0 &* @7JMJ<"5! 0% &* @7=''j-'/%I "|
I:*" $7"1!+ ". &07{RQ
I0'8<'
! 0 '&  07* &0"20W4 !:!+ *M8<"P
 s8 |#+U
<"W( 0'* &  0* &
0240W"8 "!:!+ M4<'W/0 
+ #+UM
<8  " 0!+8<W*<0 &607240W4 "!-!- *M8<"8#: 0' I= X#-!+ 1"2
I0<"&@<" 10,K:C 2,*%!%
4*? %!+ &6 0<"XR-2,( 0\=
Fragmento de Cdigo 5-2, un Fragmento del mtodo CreateSceneGraph de
RotPosPathApp.java

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|


t gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
zt
t gqYg6$uwF|``gq`|evXhXvY5gqYg6$uwF|6eeg-
t eqGq6 eqB[v{ `q6+ Q  qq -
t gqYg6$uwz4qsXy G ?\ YI ejhXvYW*|q`g6$uz`7|%
t I `ql   X j  t   t z{  t t 

t



X q k t6qwhYv q l 
*6y {|zYl 
ey Iy 6jhXvY}6y YgzYk I

 t
e t5|q`|Xv t Yvgqq6ey y |q6Y6$uwjg6e6t e1?A@CB ' ? F BO@ \ E -
t
zt sXy  v qXsy jhv sXy 6 v | t  I  t   t  +  t  -
t}qsey G ?\ I*eet {v|gqXsXy Y-
t
t t6q1   
hvY qX $  t  I t  I t   t  %

t t6q1  
hvY qX $ t  I  t  I  t   t  %

t t6q1  
hvY qX $  t  I t  I  t   t  %


 t
 tDey $y YG   |hv}6y YgzY|  t  I  t  IO Q t  g%
 tDey $y YG  |hv}6y YgzY| t  IO Q t   Q t  %
e tDey $y YG  |hv}6y YgzY| Q t  t   Q z6t  %
zt
X t Y eX*q$ gv6$X` qXg6
|YI ee*qYIw[v{ Y eX*q$ {v6$X` qX6$
q6 `qq6|XvXI{qXsXy G ?/ X$*eeXeO tYqeXXXy $y 6Y{-
t
` tgXI*Xe q$6t {v ~vex6` y X*6exX$XvYD 6`Yxy Y ev6gv6gI%
t
 t}6Lp XX t qexex`\ey x6 gq6g`vYg%
 t}6Lp XX t qexex`\ey x6$|YI*Xe q$Y-
z  t5|q`|Xv t qexex`\ey x6$vY}76 6|/Xv6  t $-
zt
z tgvX$XIw6Qp e
zezt  
v6Xx6~Y|vXqXv ~{v`v6Fgq6euwv|`x I*XXq| e
X#-!+ 1"27I0<"&6@<" 1'0,KQC  W.*  74 2ZI0'<'0~Ygv`qv ~v6v`Fgqeh<
j0-/0' *-a((= R-  =_* < #%!+7 &* 6 9,"*f'2!+0<)*<'0206%!% <0878"
#-!+ 17247 0<&@'< 1'0M 0*
<'0'84" (!+0'1!% "2 <"XR-2,( 0\=
j0-/0' *-a((= R-  <*#- *W )<0'2 
%!+ 43 #-!+ '1"2"
 0,<&@<" 10,K:C
2%!+ 
0 "2
 %!%''=_ ) 1"'!% Kn52%!% ," 5 24 '14<')w0'-/0' %a('("=
F 5 24 1U"(''
 0W! 0`R+0 4 ' * "  V W( 0"!E& < 5" 0<5 * *)( 0 &* 07 8<'
*<'0E= kj5!%" %   V* 5'* <'5 ( 0'* &  0*'U'( 0!705 8#: 1!%  4 8
0 00'&*a0
(
I0=

[ *<0*eR%'&
 " ('! 0'1!+ 24 <XR-25( 0Dw:/'/%'"U 
B -[ 
2* < <, W( 0'* &  @4<W*<0, 0%!% W(*0 &* @78<')*<'0W2 -!% 43"5!+0 W(* "!%
" &
"
V* "!E J< % 
 ! 0+ &* 07*8<')<0\= h0240,&60EJI0'<'0 0H
 "g : 7 IOU*
 24 '&* @743*W!+'  <(**<'<, &6072.* '&  @8<5 0T   0"!%J< "|
:*" *I7M
<, 0( !%9"2*%!+0 W  <0=
kj1f 0W2"*&  07* <'05 "
+'Ua* M' 8  "!- < '<<"*.*&*  8<, &   <'
%D "
+":*" *I7O=`G<'"29J<"+ J'.&* 
'8"4"6&0"!% V*@8 *  ,7hUa* M(* "!%J<"
&* 
!+ &* 07* '< 4"" (* 3 <", %   < <"=_ &* *
j-G  J "g I":*  7* &*   2  ! }%D "g
":*" IO=6b "*5*
.&  *4" (* '3*+<5 %   < <"=
F4"6eR%"2,( 0Dw'-/*%
[U  " 2 '&  @, 0W( !%'& 5 *-!% "6<'. <05 5
&0"2,.' * &* @78<5 (
0* &
 0*8<W<'0, 1 < =F G7 7%['
,2 , &
<
( 0 &* @78<W<05('&* #- &
< MJ (!+07
I0,&020
 " &

V ,
)(*0 &* @7'U*
240* ' 2 "
I0,&
"2,. ,!%(*
% * 27 W( !%  " & "
V* "!E 5(*0 &* @8 1"' %7='\I0)
0
(* "!+'&
W *-'!+ " (I053+% ( 0< &
&* @E*0*& <"74 2*<0W!% 6<07 <"
I0'<'0' 0'J0".R% 0;-  78&* "!I 5 *!+&  7=
j-G  J "g I":*  7* &*  <5 -   < <,3*)(! 0E( 0!+&* 07*
&0"25( 0"!I+ "2 7I0M;#-" & 07*J 2  !+8 5 J<"5 &   }%I "|
I:*" I7QU(*!+0
* *  V* "& "2 0<"60".R%I0 '  "
. *9 <'0*J% !+ " W(*0 &* @78<'" ' <0E=
&
2  0<'5 % !+ 5 2 + "
240  2 I0,<0.R-* 0J< 2 <'0W!%' g='F4&
2  0
< 240* ' 2 +0<"5 % !+ U*60".R% 0 ' * " ('<') 0)(*  "!/( 0! 0<"   0
&** "  3" !% F( 0 &* 08(*&* #: &
< 8<W*<'0\=F"`.*<" !%&6I0!- 0
p|x6 t |xXvujG  p|qXrYqezeGx  e y v Xy u<"5 <" 6-!- .'*&* @74<' *  7S('<8&607
%!% !/'
eR%"2( 0,<5 %   V* &* @8<'5 &*  kB(    " 2)= R-  E=

%D"
+":*" *I7
%D "
+":*" *I7' &    ".*6-!% &6 3"W(!+07( 0!+&* 0E ,  
 "!$#+ VJM T#:'*&  0
.9 &
8  J'.&*  '=_
0'80".R% 0',-I "g I: 7 I1"!+ ".  0'T *  0!+J<"W*<'0
M4&
 & ' 4N|
< &
<W 0'T   0"!+J<W<053" 5
%   V* "!+9". *9"*<'0' e * " 0!
 , &6% |=
 %ag%!:(*0" * 0!
7? % " <'El |v6$6 qg6
k'.*&*  G !%&6 4B07 0'&* <" l**ey $y `*q| {gv6IY6 qY|6+U Ygq$y `*q$ Yv6I6 q6+U
I*Xe q$ |v6$6 qg6 , X$*e ~q v
qI |v6$6 qg6
\ &* 
 ". %!% '&`% <" #: *, &   5. 
)(* "!% I0'<'0' 0',-I"g I:
7 IL=_* 
.&  *;%  74 &
&
'
0 "
2ZI0<'0)(* "!% & " &*' !~e$gv6{ Ygv`IY qYIy q Yv<  <'05"
% 2,( 0, '&6% "eM4"e * " 0!7 \= 2Z* 0<0+ 2,. Z"4&
 & ' ,"`~Ye$gv6{Y XY x`vYs6U3

. * 46~Ye$gv{ |v`I6 q$y 6{"q v ='6~YXIgv6 {v6I6 q|y 6{"q6 v &
" &* ,+!:(*0" "*<0 0
   ' "!:2%7-!+W'  "!- <W' <0('!+<" #:  <0' 3"5 * 78"X  " 0!"17*!% '<0}(
07!
"`0.YR-* 05 ",(*&* #: &
<0=
*(!: 2!/<0,<".4+*"!\; * " 0!<,oU oM4"
f' % 240W <0<". 7*!E;  " 0!"<"
n*U o7='cB,<'0W 
 "!-2< 0,&074N| <" &5<".+"!\;   07!+!-2  
 "2
 
2 *M*0!3"&*  3' "!/' <0,&60EN$ < &
5247
07!73"5=
_ 6+ W !+&* "6<'W4Z* 0'<0J<}%D"g I":*" I
y {evY Igq Yv6X|g
\ 52Z*I0<0)!+'&*(!% W 5 07 1" - <<" !-!% M8<)*<'0=
rYy x{vY $$y { y xevXs`I eqX 
\ 52Z*I0<0'J* '&
&  07* ,*<054"*N$
< &
(*'&* #- & <0)( !% 6+5 "!Q( 0" I07!O=

j'-/+D"g I":* I"


cB80.R%I0Dw'-/'%D " ":*" I'  "!QN 5 5! 0+ &* @7JM W( 0' &* @7J<W'40".R% 0 ' * "
. *9"*<'0' '4&
0YRQ 0<"8  " 0"!-J<"5'*<0E='&607
%!:*&6I0!78"
29 2,(
07!I 7+
<, 8&
"!% &6+"!QN % &
J<"X
<'6+ &*  7='F4&0 6-!:*&6I07!I0<0' 0'T * " 0!%;M
0.YR-*I0'!+ &* 07* '<0'J*'( '&  #- &
='w"."240';+"*"!7& ' <" <0<3",& < 5"
0,<'
 0'8 !:!+ *M 8<". !7<'W 52 2 5 0 1 %*<, M4"JI0<'0' 0'J0".R% 0'
%D "
+":*" *I7O=
k'2 "!- 0<,B07 %!-*&6 07!+J<"w:/'/%I"g
":* *I7
7? % " <'El*q| { v6$X6 q
\ &* 
< #-*5"8&02,( 0"!I% 2 7 0,3",20'<" #- &
5 0'J&02(*0
 '! 0+ &* 0E " ;M
<4-!% " * &* @E8<F+7 6 :8 7;#-+5 
 "!Q( 0  <'0" 0W  * "!:2
 
%!%5"
 !- <W(* "!%(!%'<'*#- ' <'0J<W'*<'0*mQ( 0' % 0JM8<'W'*<'0 m%0!- 
+ *- 0 3*W*
74
  0"!1*"!% <'0}(
07!"`0.YR-*I0W ',(*&* #- & <'0'=_ )( 0 &* @7JM 0"!: "
 &* @
 
 "!:( 0 < J 5 %   V* "(* !% 1"*"!+ "!\* %!%  6# 0!-2 &* @7"6  24 <"
&007! <* '<  0& 6<',6
 "|
: 7 I7O=
I*Xe q$ |v6$6 qg6$ `qq eXq
gq6g6$uwF|`ejgq`|evY
gq6|6$uwz6qYsey G?\ Y e`| eqk   ` q l t`qXe
*`y {gzYk  XXXy $y 6{
G07
-!- M*5" 0W 
+!:(*0" <0"!E38  !QN 5 W! 0 &* @EJM %!+ * &* @74<'"
b!%  `#+0"!:28! 07(;#-
+7=
k'24 !- 0<W4Z 0'<'0'J<j:/'%I"g
+":  *I7
rY6y x{v sey G?\ I*X|*|q`6$uz64qXsey G?\ $e
kj" '&&* 07 ,"X   0"!<'"eR%<,!%0 '&* @7( !% '6+, "!:(*0" *I07!O=
rY6y x{vI*Xy $y XIy { y Xxevs`e*`y {gzY Yey $y 6
kj" '&&* 07 5 W(*0 &* @78<'"*N$
< &
,(*'&  #- &
<0}(* !% +5 "!Q(
0  0!O=
rY6y x{v Xq|Iy {
y xevs` qX  tYqg
kj" '&&* 07 ,"6O3"*  !: 0*78"*N$
< &
'(*'&* #- & '&60)(* "!+ ,6+,+!Q(*0" *I0!O=
rY6y x{v q6|evY$ggq6Yg6IuwFg6egq`$Xv

kj" '&&* 07 ,"ebF!+ " `#%0"!:28! 07'(;#-


 W(* "!%  5 
 "!:( 0 I0!L=
:       2    "     

e Z"!-2  0O&


"!I+ !-  6j   . 0 "!+<* <074&0
+ ? I0<", 0J1!%9 #: &0'J<0! <"* <'0!
 5!+ #- !% 5  Z'& & <,!+0 ! 
I029*% &
2
 5807.YR-*I0 '  "*( " 0)(* "!+ ,3"
6+Z "25(!%<"8#:!+
 Wa* '&* '(*&6+ <'0!O=_ 5280%  '&  @40!- 1 * *(* "!% 
&0"25( 0"!I+ "2 7I0<"& !  " "!+ "!+ )(*"!-2 % !"
*
0<"5(  0  ? -'!% <0,&6020
!+2,( *V*0<5. XR%0&0' 0W(* "!+ 5 1"02*-!QN &025( XR% E=F6&02( 0"!  "2,  0<
&
!I+ !% I0< * N 
W
-   V* &02f"27 W( !% ,6+  7(  &
&* @7'U'(*"! 0+ "2.' Z8

 %   V* W( "!% 0%!+0'(!+0E(
@ I0'U
 " 8&6024052 7+*"!E 5 6#+0"!-2 '&  @7J *? -* "X ' * . 
< <'& " 3" !E9"*1"' 0, "2.' +8 ' !I- "g='8
*  7hU  Z& &
<"& "!I+" "!+  
 2,( "2
  *.*&*  <"5 &*  } QU <' "aN 4#-!+  O&
02,( 0"!I% 2 7 0
<& "!I  !- F** <07 5   !+ %'!% <  7[=
_*  (  &
&* @74&  9 &
<eR%"2,( 0<"&602,( 0!I+ "2 "
 0<&
"!   !% '!+"('!+*+ "!
9"!:. 0 8&607240% ? %'!% 8CE[=/0!""( 0EU

 *; *? %!- J 07!- 
+ "6 9% & "2"
+U
&** 7
<05(*&6+ <0! ,2 U W* *%!+  *V C7d<'5 ; *?
-'!+ J W!+* *" E=
k
"2. !%1'0EU

 089"!-. 0 'J
5!+'0"!: 
 7J<" "X# 0!-2 3" 25(!%6%9( !% " " 0'J
4*"( !$#- &  5 0"!:2 "U* "(* "!+'& "4&
0"200.R%I047[=/6 08'(*'&* " 2"
+&  ! I0*
 0'89!:.*0 J 9474`# 0 <'0<"5  &
* 0  I08 <" 6+ "*&  E=
j
E"44%I} '
&0"2,(
0!I+ "2  0F *"" #- &* 07 &07 049"!-.*0 ( 0!%3, 089"!:.*0 ( !+'&
7
.9 &
27 5 1"  8&* 7
<0 4 8<4#-!%
 7U <'5 5(* "!  )(
0'6%!- 0"!QU*0<&  " 3' "!
9 1 0E=FI053"&6025(
0!I+ 2 
I0F ' )a* '&,3"5807.YR-*I0 ' * "*( "!+*V*&
*?* '&`% 2+5 1 &   <'0 4 <"
<&* " 3 !79 1' 0EU J 7(!+07( <0)
-   V* !
F *"" TM 4 291*8CES( !% 5!%(!% % !\ 0J07.YR-* 0871''02Z%!- &60'83"
0E
 2Z*-!- &0J
0.!%eR%!
 (5 &0"2405< #: &* 0'J&   Ng <!- &60''U
  0J<17!+ *0\UI0!-!+J<
1 U*0&*  3' "!0".R% 0,&* N$
<!- &0E='6&602,(
07!I+ "2 "
 0F *  "2.' Z8
W('<

 %   V* !/( "!% 0.R%I0 0,* 24Z%!- &60'8&   <0  *4<'


<"*
#- &  "
 <" 6+ "*&  &07280
(* "!+ 0& '  "!E 0J<"* "  JCE[=
cj !/'40.YR%I0F ""I5J 2  "! 5  !/0
 "g :  $7 ?&
"(
 0,3"W 0Wa *M"
0.YR-*I0W ')( "!+ &07*<&  !E   24 '&* @7='_ ,  2 '&  @4<'"60".R% 0F  5 <" !- 1
,( 0'* &  @!+" %   (&6 '<'0!4"
2"
<0  !I%* "g=`[. XR%0W(*0<"20'T *"!\*
!+'&
 W(* "!%  *
0F * /=
1. crear un objeto TransformGroup con la capacidad
ALLOW_TRANSFORM_WRITE
2. crear un objeto Billboard que referencie al objeto fuente TransformGroup
3. suministrar lmites para el objeto Billboard
4. ensamblar el escenario grfico

G

';WF + 4E8WF '
[*3""
*
0<W80.R%I0F " 5J< !+'&` 07Ua* M',( !"<"W( 0 *&* " J"!-!+0!%
<W(!+0'1"!% "2 '&* @7='_ )(!: 2!+ &
0 , 0.*
!$  "!783F+7 6 7-J "J#-*+*
  2,( &
< 4 *V3"
, '&`-* "  V E=/0!E 0 "
 0EU 6+j+*6 -8 7 0*W(<"
 %   V* !/( "!% W( 0'* &  0* "!E60".R%I0 ' * "g= k+"
 20'
%   V "!E 8#:*+W( !% "
( 0 &* 07* "2  0EU "F *" #:'*&  0* !% 7U'(*"!+0, W(!: 2!+ , '&`- "  V '&  @8<5
! 0 '&  @7U
 W(*"!+<"!+95 W # 0!-24 '&* @EJ<"5 W( 0'* &* @4 4#-7
 M8"60".XR%I0  * 
(* "!%&
"!%960"!- 1'7"=
k & ( '&* < <<*8
7:9wG;
";
>9&7^=
" 3   '&
&  0* <" W(* "!% 5 4#-*7
 U
0.
+ <!%"240'4"!:! 0!<'% 25( 0<,XR%'&**&* @E=b/ "2.' Z'U   0 4#- R+  0gNg2  'U
0
 0*5a '&
&
0!-!%&6 247
 U*60.YR% 0<}F " } 0 7 2 !%9"`0.YR-* 0 '  g=_
0'
N|2  J
(&* #: &
"J:N$( &
"247+W( 07!E5/7'* "'+,&607'!+ < 0W 05. + %
1!% "*<')(* "!+ 5 *&* ' !"`0.R%* 04 ' * |=  I0W 1 60%!+0J0.YR% 0' "OU <'eR% "!"
0.YR-*I0F *"" #-!% < &
 !- 019*#- &0W 0,  2 * !%9<" 2'*<'0 ' !I-* "`   1f
"!-!+0"!70W   !I+ 7=
iw M(!+0.' "2 &07 &* 
}F " 53"*W 0)('*'< !(*"!% <0\='F
(  &
&* 07 8&072498<'W* 4 '  U*&
<" 07.R%* 0F *"+,  2 !+9&
0"!-!%'&6 "27 

0" 27 W* <5 T '  '='\I0, 5  2  '&  @478"6<"  ] 0<  ,M8
"!%9
%!+  '<' ,* 4 "!  @,(
0'+!- 0"!O=

F '7+4

%", ) *""

*(!+01!% 2 <"XR%"2,( 0 6j   . 0 !%< ((= R% * * &*!% W2,"


<0  !I%* "&60E49!:.0" J<
8&
02,( 0"! + 2 7
I0F  \=e['*3"5 0'89"!-.0" J & !%' 4 5 0W.!-
+0 <" <, 
( J<"5; 
%  <'0"!+F
0}( !+'&
74&602007.YR-* 0JCEd4"X#+0*<0\=
iw M80.R%I08j+*`+-8 7,(* !+ & <" 9"!:.0""46+eR%"2,( 0\=ch
%*`+-8 ""UbbwU6%!%  <  2,( 27 ,"69"!-.0" , W(
0'* &  @( !% 5
(  &
&* @7=_ 0';b!+ 7
6#+0!-2bb 0 5240<" #- & 4J% "25(
0,<',eR%'& &  @"=F
 17'*<'0,j+*`+-8 7"Ub/hU'(!+0(*0"!+&* 0E W ,! 0 '&  @,(* "!+ ,"69"!-.*0g='`b
 4#:*+<")j ""+\=
Fragmento de Cdigo 5-3, Extracto del mtodo createSceneGraph de
BillboardApp.java.

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX y uGX v`y rv6{v

t gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-


zt
t ve~g6|zX$gq6YX qvB[XvYve~g6|zY||%
t gqYg6$uwz4 z6hXv{Wgq6g6$uz6g-
t gqYg6$uwF|``j*/;hXvYW*gq66Iuwjg6eX|%
t gqYg6$uwF|``j* hXvY5gq66IuwF|`eeg-
y eq6|xB`y `q`|xBh`X
 t
*6exy  `v6gvh `v6gvBhv}6XXx6y  eXv6gv6g%
 t
  t
e t5$|q6Y qgv
t {v|$XvYD y Y|z{$ t  t  I  t  I%
t)z6Et {vgq6X q$y 6X|gqYX qve%
zt)*'t {v|g*z6%
t
t `Yv
eF6 ey Yeq6gxhXv6qrXy 6
P
t)* t {vXgq6Xq6ey y gqYg6$uwjg6X6t `1 ?J@NB ' ? D  BO@ \ E -
tDey eq6gxB[vYDy Y`qgx6* -
  tDey eq6gx t Yv ~Yvex6` y *6exe$ eXv`|ve%
  t
t 6qeYv6uGe vY~vYvB`|q6e
P

 t}6Lp XX t qexex`\ey x6**%
e t}6Lp XX t qexex`\ey x6$ey eq6gxe%

z t)*'t q`xexe/ey x`| %


X t)* t qexXx6\Xy x6|~Ygveqgvegvev6g$%
t
t 6qex`=
x *v "qrXy Xq|` vqYrey 6$ re*|q`{ ~{Xxevh|v`uwrYvex
` P
t
 tgvX$XIw6Qp e
 t  v6xGY
\gveqY|v ~vv`F|q`eGuwvY$exG*y XXq6gx e
_* W7 17!+ ,K{n`W2%!% 6<" 1!% 2 <" &
* "!- 01!%9*#- &0<'5 0'J0.R%I0'

* 2,.' <'0'84!+ '12+0<",G@'< 1'0,KQE=

_* W7 17!+ ,K{n`W2%!% 5* 5 2 1!% <"!- V < <"*(!+0'1!% 2 <"6eR%"2,( 0
6F   . 0 "! <*('("= R-  =' !+ '1"27I0,<"B@'< 105KQ 2%!% "6&@'<" 1'0)(* !+ &60 0& !\
9"!:. 06  2 <0}j "" ,2*<0 ' !I- "g=F (! 0'1"!% "2 <"H
 6F   . 0 "!+< ((4&60 0&

 !- 089"!:.*0 84" (* " 
eR%4 ' !I% "63"*( 0!/ 0,3"* 4 4&* %! 059!-.*0 8"
 1"'!+ ,K{n6E=

*(!+01!% 2 <eR%"2,( 0F *"" [',(! 0(*0"!%&* 0* ,"]%M"w $Q"* 7"<
240'<'053(*'&6 <0"!/(<" 5240 ! *  !%<<'0!"M80.*
!$  !E 089!:. 0 J<
<
 !- (*0 &* 07 ;M80!- "
+ '&  0=
3

Y#"F *"

XR-2,( 0W2*6-!%   


0,<'"X  " 0!\( 0!< #-&I0<'"`07.R%* 0F *"+EU 3!+0 "!

0".!+W'eR%7='F4 W240'<'0,<'4   0"!/( 0!"<*#%'&` 07U*60".R% 0 ' * "` 5! 0% !%9

0" 27  0".!+,XR-X
 (=`GN'(*U *  0'89!:.*0 J*(!+0'1!% 2 }F ' *4 
"4< < "!:!- . 0< < ". eR+0EU
41'0"2-!QN C7
"!QN 5!+* " '<' E=
 240<'0,   !Q* *- *0,! 0 "!7  !+<<0"!<5"(''
 0\=F46+,20<0EU 5!+0 '&* @78 !ON
" !+<'<07!"<","( 0+ 3,60".R%I0  * "` 4 * * 2,('!+0!I%a010  2
 
< <'& " 3" !(
0'* &  @4<, 8 ' 6 E=/J<''&  !\*& *!%907. ' 0,3",60.YR-*I0 ' * "
J<<'0'J<" 2 * 0"=cB*  (  & '&  @(*0 .' !%(!%*
 "!E 5 ' U80%!+0'
0.YR-*I0'46#+Z!- &0J<  +8&0240,&N|!+&*' 0'=_*0'J0".R%I0'46#+Z"!- &04 (* !+& 8&
0240
&Ng!+&* 08&*  <'0 4 4< <'&* " 3 !79*1"' 0\=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}F '
7? % " <'El*v6YqXrey 6
*
0'<'0<&025(
0!I+ "2 "
I0F ' #-'*&* 07* 07.'!%"*
0<0,F+7 6 7-4 ",( "!+
a & !E3XR-, 0'&
"v`G<"+7 6 7-J+"8 (
+ , 5(*0'* &  @8<"60eR%0<
(&6 '<'0!O=/6 0 5a &  2,( 0"!I% !\ T-!+ *`#+0"!-2 '&  0J
0.'!%* 0'<'0
%*`+-8 "(*'&* #% & <0,7 &
" !- 01!%9*#- &0E=_
0'
0<'0',F 
(!+0(*0"!+&* 0E* 4 5 52 *M*0"!QN <5 T *7 eR% ( !+ 5 0'J0.R%I08&02,( eR+0U*9( ! 0'
K
 2Z*-!- &0='cB* 0QN|( &0W('*'<&07  % !7"'4&* '<"!:  9 "!+0  ? %'!% <'0,&07
 2 1'78<549!-.*0g=
 y Xeq`|x`|
G07
-!- M*5" 0'<'006F   .*0 "!+<,&60E 0'( !+9"2-! 0(*0"!7<'*#%'&`I0\l*20'<]`
bGbj >
 6 cFb w kBU* ?' X
 ` oU%n Uo=

y Xeq`|x`|*|q`g6$uFg6eFge

G07
-!- M*5" 0'<'006F   .*0 "!+<,&60E 0'( !+9"2-! 0(*0"!7<'*#%'&`I0,30E(*"!% 
07.!+,"
 0'<'0bj!+  6# 0!:28!+0((&* #: &
<'0E=
y Xeq`|x`|*|q`g6$uFg6eFg
y {
uwexXv
ve~g6$z{6qXsey {
G07
-!- M*5" 0'<'0
0 6F   .*0 "!+<,&60E4XR-M8" 280'<'0,(&* #- &
<'083*07(*"!% 07.!%"
 0'<'0bj!+  6# 0!:28!+0((&* #: &
<'0E=
F<T "! 2Z*+0<0{v  Xx`v6gE( "!% W' *?"(  &
&* @7J<" ( !+92*-! 0)240<'E=
y Xeq`|x`|*|q`g6$uFg6eFg
y {
uwexXv
e*6y {|zY
6y {g
G07
-!- M*5" 0'<'0
0 6F   .*0 "!+<,&60E4*(" 0<"5! 0+ &* @E4'( '&  #- &
<'0M4 240<0,3"
07(*"!% 07.!%"  0'<0b!% 
6#+0!-2J!%0(4(*'&  #- &
<'0\=
F<T "! 2Z*+0<0{v  Xx`v6gE( "!% W' *?"(  &
&* @7J<" ( !+92*-! 0)240<'E=
_  W !%&  6<'W4Z*+0<0J<")j ""+
rYy x{v y eujv6{ sey "v`~g6|zY6qsXy {
kj" '&&* 07* "6eR%< "    2 
I0E=
rYy x{v y eujv6{ sey $ XqX`s`I `q $ eq`{
kj" '&&* 07* "XR%<,     2 
I0E=
rYy x{v y eujv6{  Xxev6Iy {
ujexeve
kj" '&&* 07* "
240'<'0<" "  ' 2 
 07U <'07 <"5280<', 0<El

ROTATE_ABOUT_AXIS - Especifica qu rotacin debera sobre el eje


especificado.
ROTATE_ABOUT_POINT - Especifica qu rotacin denera ser sobre el punto
(
(
especificado y cual de los ejes del hijo debera corresponder con el eje de la
vista del objeto.

rYy x{v q$y 6``y Y|I*y {|zY


6y {
kj" '&&* 07* " ("I0<"5! 0 '&  @7"=
rYy x{v q$y 6``y Y| $ `q`seI eqX | eqY6{
kj" '&&* 07* " ("I0<"5! 0 '&  @7"=
rYy x{v q6|ev|ggq66IuwF|`ege
kj" '&&* 07* "`0.R%* 0b!% 
6#+0"!:28!+07'(;#-
 )(* "!+ , 07.YR-*I006F   . 0" !+<\=


   &                        ; : 3 < 

* '6<'"`<    w/J Z"!-2


0,1'7!% " (* !% 5" +Z'& &
3"4 * "!QN 5
&
"
% < '<<<'+   "40".R% 0  *  . *9"*<0' 74&  ! I0  " 0!< 2" <'0
' !I-* "g=_*  (  & '&  @J:N|( & T * !- "!"  6<6<' "  5. *9 <'0' 7 <" 6+ "*& 
"6(*'&`+ '<0!O=** 7 0W2 M 0!" ' 5 <   &* , 5807.YR-*I0 ' * "U2 08<*+ "  
(* "!%&
"!%94 ,!+7(!% "
+ '&  @"=eG'N'('U 5!+<7*&
&* @4<5 &6072,( XRQ <' <<"
0.YR-*I0 '  "*(<"5*05 #+'&6 "!7 !+*'  '<0 '  g= k8"2. "! 1'0EU
< 2  !E
&
"
% < '<<<'+   "4"`0.R%* 04 ' * &*  <'0, 95 eR+0';<"6(*&6+ '<07!E!+'<"& ,
&
"
% < '<<&
9" &* 0<'W!+ <"!- V '<0\=
k6 5a* '&
5.' 'U a0"!-!+0<"&9" &* 08
 17 #- &
*% *0MJ W(<a & "!"  W( Z! < <" <&60E+ <'0 '  g=
_* &*  }h   "S(!%0(*0"!+&* 0E &
0"25( 0"!I+ 2 I0S.*  <07 <"  "*&   
(&6 '<'0!O= -!+ 8 7(  &
&* 07*( 0'* . J<}> &*  M ; * !- "!"* "`<6<* "  
. *9"*<'0'  4 *" 0&* < <<5!%(!+*"
+ &* @7 2 "!+&0( 0"! '1""
<0'/&0
(!% V <52 +*!E!% *% 0W2,N$ 280,<,2 "!+&0''U 8 " 0'&* < <<60.YR%I0 '  "U
0,* 6<'"6<'    W( 0'<!QN &
0
%!+0 "!/( 0!E 8&0#- 1"!+ &* 0E 8<'" ** !- 0\=
b\0'<007.YR-* 0}P% "*5'*00W29J07.YR-* 0J &0280#-
 E=
kj'1"f" 0
2*&* 07* <'0, 
 U40.YR-*I0WJ '7 "( '&* "63"*5 *&*  M*&
!+0EU"
0EU 0
29'U < a' R+0'8"4"6
&
7 !- 01"!-9 #- &60)(* "!+ W!+ <"!- V "!O=*G07"J07.YR-* 0
G 6 7 7*hU   &
&  @8< a R+0<'"60".R% 0W/J J#-"
+ &07
%!+0 W( 0!E
<  "*&* <"60".R%I0DB   *d , 4 '  5.* 
'<' ,7"4&60E{RQ'
I0,<'<   &* 
<5'2,.!+ "g=
_* 8<  "*&* ;<"52,.!+ 6 (*'&  #- &
"474 !:!:!% *M43*&
0"2 V ,&607
<  "*&* 529 ?' 2 3"W
%   V "!+9*(!- 2!/a R%0<'"
J 8#-"
 7='*(!- 2!Ea' R%0
:N$( & "2
 4"`0.YR-* 0 ' * " 249J< "  <'0\=*[* 7
<05 <" 6 *&  <"60.YR-*I0
G 6 7 7* 5 8  6 24 M*0"!73"+W(!- 24"!\'2,.!+ "U 
5 %   V* 6
1"" <'0)a R+0
<,J 7=
B < 5'2.'!% 6 1 "
 <5 <  *&* <'. !/2 *M*0"!73"" "
 "!: 0"!"M
(&* #: &
, <" 6 *&   &* "` 5
%   V "a' R%0 1' "
 <" /J 8#-"
+E=
k6  1"!%1" ,298<'W/8 &602404#:*7 <60".R% 0*[U*&
< 5J J#-"
+
 5
%   V (* !% " " 0\=/;<'&  !QU
  &
&* 07 74 " a R%0<'"
2 *240}N| <" &

 2  9  2+W( !% &
<" ," 0<"5 0J 8#-"
+7='w+ 52 !% 7U'40".R% 0

' * "&602,( eR+0)('*'< !\!%"('!+*+ <'0)(*0"!07.R%* 0J1"024Z-!- &60'2f' + ( 83 07
a' R+0'J<'< !  0' 0<0/J 7=
j
E"44%IG 6 7 
c  !/'40.YR%I0DB 6 7 7*J 2  ! 5*
"!\0"g
+":* I7*?*&
( 0,743"W 0
j
a *M80.YR-*+05 '*)(* !+ &07*<"&  !E   2 &* @7=_*  7 2 '&  @78<"60".R%I0*S
< !- 1'8<  7 &* 5!+" -   , 4  6+ 4 2'*<0 ' !I% g
< W2 !% 5* "!E"
0.YR-*I0DB 6+ *2
M8 2  !7 ,** !/80.R%I0F ' \='cj !\'40".R% 0<
G 6 7 7*P+ 2.' Z"!+3' "!%4#- R- !\ J<"   &* J<'" 2.'!% |=e[. XR%0+"20' 
!+'&
 3"W 0'26%!- , 0(*  0( !% 5* "!\5=
1.
2.
3.
4.
5.
6.

crear un objeto Switch fuente con la capacidad ALLOW_SWITCH_WRITE


crear un array de distancias de umbral para el objeto DistanceLOD
crear el objeto DistanceLOD usando el array de distancias de umbral
seleccionar el objeto Switch fuente para el objeto DistanceLOD
suministrar lmites para el objeto DistanceLOD
ensamblar el escenario grfico, incluyendo la adicin de hijos al objeto Switch
fuente

G 
';WF + 4E8W*
g*&*  
0, "" 33""
*0,<W'40".R% 0*dJ< !+'&`+07Ua* M',( !<)(
0+"*&*  
"!-!+0"!%J<W('! 0'1!% "2 '&  @"=F6"!-! 07!E298&
0"2,f"8 0W &* ' !"60".R%I0)/J J#-"
 
4" &7 "!- 01!%9 #: &0E=' R% !760.YR%I0WJ 8&0240W 8#:*7 <"60".R%I0
G 6 7 7*S 0W 0W *&* 
M*,   029*% & "2
 ,""6
&
7 "!- 0,1"!-9 #- &60\=
k & ( '&* < <*8
7K9 7" TJ 9&7^=
" 3 #% R+ < W(* "!% 60".R% 0WJ J#:*+7U
 
1*"!+ !+9W'"!-!+0"!E"J% 25(
0,<eR%'&**&* @E=b/ 2.' Z'U   0*4#- R% " 0gNg2  U 0)
0
 5a '&&
0"!-!%'&6 "27 EU "60".R%I0*H 0, " 2 "!%9"60".R% 0  * |=_ 0gNg2  J

(&* #: &
"J:N$( &
"247+&60E"5/7*" B"+,&0"!+ '< 0W 0W. 
 "
 1"!- "*<
&0"20)(* "!+ 5 *&   !"`0.R-*I0 ' * "g= 1* "63"&
040%! 0'J0.R%*+0"* 7QU
<XR- !7
0.YR-*I0P#-!+ <" &
" !- 017!+9*#- &0W 0,  2 * !%9< 2*<0 ' !I- "`   1"f"
"!-!+0"!70,  "!I+ E=

i M(!+0.' "2 &07 8&*  J<}*>3W 0}(< "!"(*"!+ '< E= 1" 3"
w
&0 (  &
&* 07 8<'}F ' \U  8 (  &
&* 07 43% *29J<W* 4 '  U*
0.YR-*I0d " 2 "!+9&0!-!%&6 2
 
@ 0W* <',"  =
3

% ,",
"}  7 *

 !+ 1247 0<,B@'< 1'0,K% 26-!% 54 ? %!% '&6I0<"


2ZI0'<0~Ygv`qYgv ~{v6Yv`F|q6eh<"
  6 *&7_ (("= R% * * =
G
Fragmento de Cdigo 5-4, Extracto del mtodo createSceneGraph en
DistanceLODApp.

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|


t gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6ee|%
zt *6exy  `v6gvh6eXxXjhXvY*6`Yxy Y ev6gv6|%
t
t 6~Y|veqvq6gev6gq6g6$uwF|`ejy Iwqq``y y |y v

t gqYg6$uwF|``j6Lp  rYvB[vYW*|q6Y6$uFg6`e|%
t
t 6~Y|veqvy gq6~{v1 ?j8q6gev66Lpgv`~
 
Fy ~q6g`v y g~Y[vY Fy g~eg-
 t
?A@NB @ */% BG@ E E %
  t5|q`|Xv Fy g~Y6t {vgEq6Yqey y jy |~Y`t e1
e t
t 6qex`xwrXy Xq6`Op$vX~|vjgq6gev6jy |~Y
P
zt5|q`|Xv Fy g~Y6t q`xex`\ey x$v{ Xv6|v6 t    I%
t5|q`|Xv Fy g~Y6t q`xex`\ey x$v{ Xv6|v6 t    I%
t5|q`|Xv Fy g~Y6t q`xex`\ey x$v{ Xv6|v6 t      I%
t5|q`|Xv Fy g~Y6t q`xex`\ey x$v{ Xv6|v6 t    $%
t
t 6~Y|veqvy gq6~{v1 ?j`Op$vX~
  P
  t5I `ql  x6y gq6~{vXj t  I O
 t  I   t 
 t7y q~{vG ?w8x
1 ?j[vY}Ey q6X~v
G ?wgx6y qY~{veevYD*`y {gzY|gI%

 t}x1 ?jEt qexXx Fy g~e q6g`v Fy g~Y%
e t}x1 ?jEt {vY ~Yv`x`` y X*6exXI6eXx{%
zt
t 6qeYv6uGe vY~vYvB`|q6e
X P
t}6Lp XX t qexex`\ey x6g6Lp  Yrve%

` t}6Lp  XrYv
t qex`xe\`y x`$x6R?j"%^  ujqvw|vheYxejuwrYvjFy Ij6Op|v`~
t}6Lp  XrYv
t qex`xe\`y x`gq6gev Fy |~YY-^  uGYqex`xwy g~YgG{~v6vG6gq6`
 t
 tgvX$XIw6Qp e
z  t  
v6Xx\gveqv ~v6Xv`jgq6XGuwv|exGY*7y q~{v6R ?j e
_* W7 17!+ ,K{n`W2%!% 6<" 1!% 2 <" &
* "!- 01!%9*#- &0,& !+ <'0,"X#-!% 12
 0
<&
@'<" 1'0,K%= .**!$  3""60".R%I0WJ J#-
 a' R%0<5807.R%I0
%E*`+-8 "8M4!+*#+"!- <0W(*0"!E60".R%I0DG  7 7 =e[2. 0' *V 0'J0E
*&  !- 0''=

*_ W7 17!+ ,K{n`W2%!% <'0'8 & " !% <"!- V < ( 0!B 6+ 7*'= B <'

&
* % 7 <'04`#%!% 8 9% &
TM"* `#%"!+ 3 ,2, 7=   &
*
<"!+'&*a U *0&  5 6#+"!+ <'5 5 V*3" !+<" 7= _ ,`#%!% 52@* ' 6 ,!%"(!% 
 )( 0!E"
0.YR-*I0DB 6+ *&6078& *%!%06#%!% J<< % 
 &0"2,( XRQ < <10724Z%!- & E=_
`#%!% W(*3"]* 4 "! <" `#+"!% 529J<"* "  <" 5 * < )(
0!760.YR-* 0DG 6 7 7 
 <" 6 7 &* ,29*? 24 \=_* 6#%"!% 1"!%  <"5! 0eR-  52"*0J<"*+   <" <'"`0.YR-*+0
G 6 7 7* <" I "*&* 525N$ 24 E=_ ;<046#+!% 8+9% & J
5 *&*  M (* "!%
(!+0(*@  0J<&
02,(* "!+ &* @7=
F46+  (  &
&* @7460.R%I0DG  7  ,!+(!+ 7+ W( 0"!7<" *"! * 8`#+"!% J<
&0" 0"!/(* "!% 5  *6-!+ !\ &072  '&  @"= h < 07.YR-* 0 ' * "   <'0}(
07!E"J0.YR-* 0}
<"."!QN W(* "!+'& !" *0!-2 "6&0"20 '  (!+07( '<'0E=
kj5 %   V* 5'5/* + E "g :  I7\(* !+ 520* !60.YR-*I0Dh 6 7 7*da '&   '<" +
Ma &*  *-!%987  & " 7=*[ 7 0529 XR%0J<5 4  6+ 
52*  "`0.YR-* 0

G
6 7 7*hU298&
2. !%  0'J0.R%I0T '   =
k4& "2. 0<"&0" 0"!7"
(  &
&* @7'U' 0 !QNg 8#%9& 6<''&* !&*9 <'00'&'!:!+5 &60E2,  '&  @"=

F W(!+9&6% & 7U*0!-2 " 27 W&  + !+"204*?'(!- 2
 "!7&60E J<   &* J<'
'2.'!+ "eM J< % 
 4!%"('!+*"
+ '&  0( !% ,&0 *17 !\ 0'8 #+'&6I0T    
<* '<'0'=
3

Y#"   7*

F8  ,hU &* 


}H(!+0(*0"!+&* 07* 5 T#-" &* 07*.9* &
(* "!% I0'<  
(  &
&* 07 ,=_ &* 
G  7 **? % 
<"5 &   }*( "!+  1!%1" !
&
9 & ' 0'X
 T /8 
1"f <" 6+ "*&   ( '&6+ <'0D! T= VG "!- 0'42ZI0'<'0'8<'5 &* 


0 '&
* !- 0( !% "
*
0<W'40".R% 0G  7 [=
k'2 "!- 0<,B07 %!-*&6 07!+J<"G  7 
\ &* 
< #-*5"*0<0<&02,( 0!I+ "2  0W.  <0, <  "*&* 3"4#-*&* 0E

0".!+W', 0'<'05J ,( !+  " '&&* 0* "!E"
0,<"5 0a' R%0J<*5*0<0)/J
. *9"*<'0'  <" 6+ *&  <', ) 0'<0}>a  ,(&6 '<07!O=cB4 !-!+ M8<"W
" "247 043" "'2
 52407*0I@E & "2
  '1f <  "*&* '(*'&* #- & <' 7U+ 3
<  "*&
 xgW
o y" 9, 
0'& <'  "  "
298 "  0<"<   M8<"  "*&
 xI K{=
n y 9
0&  <'05 * *" 249.* eR+0<"<*%   7='w &*!+<'0,&07 <" 6 *&  ,!%' "`< <"
(&6 '<'0! , W*0'<0DG   *hU 6 0T   0"!+8<'5 <  7 &* <')U
 x*o7U'
K{>
n y
  &
&* 0 4-!%<"5 0' *" & Fn<<'+ "  H
 xoU'C
 yO=
kw6<, <   &* <"
(&6 '<'0! "  0'<0<*[U I0E &
4 & &* @(* "!+ <*+"!-2  !E* *"6<'"

<*+ "   a R+0<'"  0<0WJ E  &


&* 07 <'0,"l
 y x;i6Bx6y gq6X~veG  
y Yy x6y gq6X~vX1 y Q iBx;i6Bx6y gq`X~ve1 y 
6y ;
x jGxy gq6~ve1  1 Q 
.*
"!$  3 +05 W( 0'* &  @4&0"20, "!-!% *M4<<   &* 8+9'( '&  #- & <0'4"
"`  "2 <&0'0! <"* <  0'&
"`<, )
0<'0\=
y q6X~v1 ?j7g
G07
-!- M*5  &* "  V 5 0'<0}G   &
_ d&0 0T   0"!%( 0!< #%'&6I0E=
y q6X~v1 ?j7 $ `ql  x6y gq6~{vX{
G07
-!- M*5  &* "  V 5 0'<0}G   &
_ d&0"6 "!-!+ MJ<"<" 6+ "*&* 
(&* #: &
<'0M W(
0'* &  @,( 0!<*#+&6I0,< o7Uo7U o=
y q6X~v1 ?j7 $ `ql  x6y gq6~{vXeX*y {|zY
XXy |y 6Y
G07
-!- M*5  &* "  V 5 0'<0}G   &
_ d&0"6 "!-!+ MJ<"<" 6+ "*&* ;M
( 0 &* @74'(*'&* #- & <0'=


k'2 "!- 0<)4Z* 0'<'0'J<G 6 7 7 


y eeuG7y q~vXg
w*  *5"4&60E+ <0"!<*f'2"!+0<)( !+9"2%! 0J<"<" 6+ "*&  <*_ [=
rYy x{v$Ey gq`X~v6Iy eey ~Y`7y gq`X~v
YxXee vxy gq6~ve
kj" '&&* 07* 5* <  &* <'52.!+ " (* "!I- &* !O=
rYy x{vI*ey Iy eI y $zYXey Iy 
kj" '&&* 07* , W( 0'* &  @8<6+W 0<0}_ [=
#")*S: *"6/w 
0240,&*   . %!% '&6 U' &* 
}H
0 5
%   V < !+'&`% 2"
+ 0(! 0'1!% 2 
G
< * * * ,7[=_*02Z*+0'<'08<, &   }*
5
-   V* "(* "!% 52 XR% "!7"60".R%I0
/J ;#:*%<"580.XR%I0DG  7 *[=b/ 2.' Z'U*0%!% 4 (  &
&* 07*J<}*
( 0'<EN 4&*!%' "!  , ?  7
<  <'0, &  *
'1"f"4
'  (!+07( <'0\=
k'2 "!- 0<,B07 %!-*&6 07!+J<"}*
cB 0'<0Wa*0eR- }*' &   <'&
0"2,( 0!I+ 2 "
I05 ". %!% '&` 0,3"0E( !+ 
0.!%

* 5  6+ <W 0'<'0'J 5(* !%   &


&  0 !/ 0,<'5 0'a R+0'J<'5 0' 0'<'0'J 7=
_* &*  )  ? %  <W(* "!% 5 2,( "
+ "!"< % 
I0'8& !- !- 0J< " '&& @7=
?j7g
1
G07
-!- M*5  &* "  V 5 0'<0)_ [=
k'2 "!- 0<)8Z 0'<'0'J<}*
Yr y xq`xex Fy ~e Fy ~jy g~Y`"exeve
]* <,6eJ  &*a( '&  #- &
<0, 5 5  6+ <e8  &*a*8<',6+5*0'<'0}_ [=
pgqXrYq
t Y|y t E eeuwv6gq$y `Xv y |~YXvg
w*  *"`07.YR-* 072!% % 078<I0<'0' 0'JeJ  &*a*'=
rYy xhy v6 Fy |~YX y g~FFy |~Ye"exev
Xy { y XxevXs{
g 
"!I+ "  0'<0eJ  &*a4(*'&  #- &
<0,4"*N$
< &
'( '&  #- &
<0\=
y { eeu jy g~Yveg
w*  *5"8&0E '<'0!<eJ  &*a*'J< )_ [=
rYy xB|v6ujXrYv Fy |~YX y { y XxevsY
  2 * "*
0'<'0`J  &*a4<'"N|
< &
,(*'&* #- & <0/=
rYy x{v Fy ~e Fy |~Yjy ~`ex`vy y xevsY
w'"2,( *V *
0<'0`8 +& a(*&* #: &
<'0,&074*
0'<0`J  &*a5(! 0E(*0"!+&* 0E '<0\=
0   $ 7 

*_ 8&* 
H"| ":*" I\280'<" #- &
T  !- 0'8 *%!- .' I0'T  *  8< 2 <'0 ' !I% |=
kG 
"2. !%1'0EU*05a *M"0"g
+":*" I7\(* !% &
"2.' !E 102*-!QN <5807.YR-*I0 ' * "g=
\I0,J*? &6 "27+, 0,3"5a '&
5 &* 

 4Q7=cB80.YR%I
0 4:'& !+ 5
102%!QN W(* "!% 540".R%I0  * &07 5 "!:( 0 '&* @7J<"54&07YR: 0,<07.YR-* 0
;'-Y M`-+ M"='w 4# 0"!:2 5 &*  0
 47:J&0240W 8&* 
H
 "g
+":*  O=
"! 07 U 4:'5
0,4"0
 "| ":*" IQ'
0,6* 3' "!% 5 *?    @78<"5 &   
 L=_* &*  0
 87:*?
- " <, &*  w'"E=
 B ('N - 04 *?(  & 3"*I0<'0' 0'J&
"2.' 0'8" , &
 4  * 0W 0'J0".R%I04
81!%9*#- &0  0<, *&  Wa* '&
7 0!-2  247+&0E8" 24Z 0'<'05`ge~vX $y u` 
<, 0J07.YR-*I0', "L=FI0,3W 0Wa M* &   ,'( '&N #- & <"

&0"25( 0"!I+ "2 7I0)( !% ,"


*
0&07"80.R%I0 87:U
 <'".
&!- . !E'4&*  
(*"! 
07*   V* <" W(* "!%  (  &
"!- &0]
 4:'= kw
 &* 

 87:'
&0  <'"!% 5* &   
<  2 &* @E80<5 
 "!+ '&
&  @4<'7(**<<"6:Ng2' 0)( !+ ,&602,( 0!  "2 "
 0,3"
< !- 1' 60.YR%I
0 47:'=
_ 080.YR-* 0'P
 87:'4 5(<" %   V* !/( "!+ &0E6 !I% !\ ( !%92 <874& . 0''U
1" *I0'
(*"!:! 0'U 0,&
2,.' "!&* " 3 "!"1"072*%!ON &** " 3"' "!"0%!% 1'02%!ON E=_* Wf' &

  2  '&* @4835 0J07.YR-* 0J<", 1"0"2*-!QN 5  <'0'( !% , 5 +!Q(*0" &* @78
 8<"
 52 2 &   U* *.&   <W;7%Y M6[-%% M"UM8&04"
2 *240)f2!+0<
Z!I- &
=_* 5!%%!- &&* @"" f2"!+0<4 *Z"!I% & 0,N|2  &6020)(* "!%&
,
(!- 2!- 8 '  E=j8"6
* * 7*< % . M W(!+0'1"!% "2 <"XR-"2,( 053&0E6 ' "!I 
* W( !+9"2 <',"4&*. 0EU\M!+ 2 <C".*E= R% *  E=
_ 080.YR-* 0'P
 87:'8+ 2.' Z"8 )(< %   V* !/( "!%  7 2 !/'40".R% 0 ' * " ( 0"!
eR%"2( 0\=|Ua '&!3*W' W(*"!  0 &07!-!+ ='F4XG   2,.' Z(<
 &
0
-!+ "!\"(!+0'1!+ 24 ,3" 7 2 5" W2  07UJ0!Q(a 1\= R% * * E=c[;+!+& !7XR-25( 0<
8Q3Wa* '&
&
"2  !7 W' 8#: 1!% <" " 2.!%8"` 2 <5  '&&* @7
 1 "
 7=
j
E"44%I
8:'
F
  <"!7   0<"`0.YR-* 0<"
87:'!+'3" !+ .!&
@240#- &* 07*  0'J0".R%I0
8Q7=ew#+0"!I% '<" 2"  7U80.R%* 0
4E:5 02
M4&
0"2,( eR+0E='ch80".R%I0 47:'
1!% . 54 "!-!% *M4<0.YR- 0;7-Y M`-+% M=*0<"240!%'&
0"! <" !7<'" h (N %' 0C 3"
;'-Y M`-+% M4 *'(!+&* *<"F- 7
 [-+ M"U
<  %- 6-+% M"U
<'
"g*%
LE '%- 6[-+ MU6M8<j- 7
7 F 76[:+% M -!%0-! 0'2,*&*a*0'=
 ;7-Y M`-+% M
< ' <* "`< #: &02,(  "27+,"* (*&* #: &
&* @741''0"2Z%!- &

&0"25(  W(* "!% "60".R% 0  *   *&*  M 
<0,&60 0!QU
(*!$#- &* 
0!-2  'UM
&007! <* '< 8<'5 4+ ? -'!% 7=_
0'80".R% 0';'%Y M6[-+ M4
W(*'<'7 2 1 * !&
0240
2 !%&0'J<5   2 & @7U
0W298&
0"!-!%'&6 "27+U*&6072405 8&07  
+J7*
'&  &* @7,( !+ & !% !\,* 0,0.YR-* 0);'-Y M`:+% M"=
G<29J<"6 "!-!% MJ<"0.R%I0';'%Y M6[:+ M'U'807.YR-*I
0 4Q4% *, !-!% M8<
  0"!+8<'" (0K\Z6+ J
0 T * "!- ".' 87 & &* @E='cj
7
<0,

;'-YM`-+%MJM 0(*
0'U80.R%I0 4:'&07
%!: M*5"'** 007.R-* 0102*-!QN
*
7
<05*(! 02< 0<'W 8&00!+<'7 '< 'U "6&0 0"!OU J'(!$#: &*  0!:24 " 'UM
 # 0!-2 &* @E8<&0'0!+<7 '<' 8<5  *? %!- <"5 0';0.R%* 08<5;'%Y M6-+ M=
80'< #: &
!\ 0(*
0'8& 2. 5 102*-!QN W!+'   E=
b\0'<05 03*5!+'3 !%W( !% 5 %   V* !\'40".R% 
0 87:'8&*!+ "!7"6 "!-!% M8<0.R%I0'
;'-Y M`-+% MJM;#% R% "!E 0T   0"!%J<&
"! 1" 7=`[. XR%0W(*0'<"240'T "!E"* 5!+'&
 W(* "!%
*
!E"J07.R%*

0 47:7=
1. crear un array de objetos GeometryArray
2. crear un objeto Morph con ALLOW_WEIGHTS_WRITE
3. ensamblar el escenario grfico, incluyendo la adicin de los hijos de los objetos
Switch fuentes

0240 )(<"4 *!QU !E"80.R%I0 4:'5


0,J<7!+0E
 4"2. ! 1'0\U 6 0( 
0
G
<, 5!%&
*% 5*0)(!+0E(
0!%&* 07 7 " 2 &* @E  
 "!+ &
&* @7"=_ , " 2 '&  @40W
 
 "!+ &
&* @EJ W(!+07(*0"!+&* 07*  %!% * *Z8<'W80.R-* 0}"*' 7O=*0"!\ 0 I0EU** !\
0.YR-*I
0 47Q  1 #- &
1*!+  2% & !- . !E* &*  } O=
cB80.R%I
0 4:'
W(<5!%*#+!: ! W(* '3"+< (*&6 0\=F
2 
0`R+0< (*&6 0
 5
%   V &060.YR-*I0};'-Y M`-+% M4&*!+' <'0)( 0"!E60.YR%I
0 4:'7=w"."240'; 7 !
&* <' '<0M 3"`0.R%

0 8E:&*!+  "2,(!%W'807.YR-*I0)J'-Y M6[-+% M&07


&0" 0"!+ KL( 0!+K+ !I% &
7=/0!7&607
 17 "
+7U
 5 17 07!+ !%9 J'(*'&  #- &
'&  0"*8<
G7 7% **wI%- ' +;MJ<&0 0"!<" #-*0,<'

  "- "|=*j*<T *"!7" B ('N - 0, ( !% 529


 # 0!-2 &* @E807.!%&0" 0!+ !"M802,.!% !0.R%I0'T '   =
G 
';WF + 4E80
8:
g*&*  
0 7J 2( &0"20,8"
* 0<"

 87:'"Ua* M'!-  10}(


0+ &* `<
(!+01!% 2 '&  @ 
0&  <0  0W2"*&* 07* <0I0'<  N =
0'83"5*0*2 )n Uo
!+' + "4"8!-! 07!7J- "2( 0<XR-&&  @"=`B 5a"240'427 &* 07* <'0) ,  2 + &* @7
< (&6 0E=

% ,"J 4EU J7:D57>"

\  (  &


&* @7J<"
87:' %   V* 5'807.YR-*I0' /( "!  0   V* <'0}(* "!%
(!+0(*0"!+&* 0E* !E   2 & @7='*(!- 2!/( 
0<", 5!+& *+ 8 &*!- .' !"
&0"25( 0"!I+ "2 7I0)(!  0E "  V* <'0\=
F8&
02,( 0!  2 7
I0)  <'0}( !+   2 "!\40".R%I
0 4:'U  2Z* 0<'0
ege~ve |y uGe YB& 2,.' 5 0'(*0'8<'"`07.YR-*

0 47:7=/`+5(! 0'& 


0,80 0 
&0"25( eR+0,&6020W&
 !- 0)(* !%  " &

V* "!"6*#+&` 0<* <0<"5   2 '&  @40<5
 
 "!+ &
&* @E='F4 )(!%017!+ 2 7U "
2Z 0<05X|e~ve Iy u` Y#- R- , 0T   0!%J<5 0
(* 0. *9"*<'0*74"e   0!"<5807.YR%I0W E='\6I0*&
<,"4& < ,2 "!+&0<"
!+7
<"!- V '<'0<'07 <5 &07 < &* @7J<"6< ( "!% <0!
5a &*'2,(  <0\= !+ 17247 0<
G@'<" 1'0,KQ <"2%!% "6&@< 1'0}( !+ "&602,( 0!I 2 "
I0,<W(! 
07   V* <'0<"
(!+01!% 2 40"!Q(a6T(("= R%  * ='F4 &@'<" 1'0EU

0 "2%" 24ZI0<'05ege~{v{ $y uGe Yh
 
 "!+* +E=
Fragmento de Cdigo 5-5, Clase MorphBehavior de MorphApp.

teee y ~F~Y qX{  6$e6 vqrXy 66vXsgv6xe*v`Xqrey 6


t
zte$y rYqYgv  6$`q6|ev  6$e6
te$y rYqYgv eqGq6 eq

t e$vw Yy j /Buwvuv6gq6gv[Yv6gvwg66v Iy ~Yy vY~



te$y rYqYgvGxe6ee v  v6y 6{FG    
te$y rYqYgz
v @q6v6eX76Xx`y $y 6F|$y eev6
[v{]
@q6v6XR ?j E q6{vex|q6ujve  %
 t
t 6~Y|veqv  `Ie`v6YqXrey 6
 
  t  6$`` vqXrXy 6$  `IXFgq6gevY  6$e6 `qq `qe|
e t5IXy et |q`|Xv  `IXGq6|ev  6$e6
t5IXy et q6 `qBGq `q

zt
t
tDeee y ~rY6y xhy ey |y q` y Yv6g$
t `Yv y ey |y q6Oq6v6ew~{6x6y Iy 
P
t5IXy et q6v6e1 ?wX|$y eev6|-
  t
 t
 tDeee y ~rY6y xhege~{v{ |y ue Y E X`ujv6gq$y j~YIy gv6$y q`|


 tP6xeq
XvXvexwgGxeve~ex`vvXrYv`{6Xy X~vjIYv6gvhy 6` `vj$Iy e`v6
e t5v`y 6g1    v`y 6g1 
 v`y g1 
 v6y 6g1 zG

zt
X t5I `q`q eqYq6 Yvh  q6 `qt rYq6 v`|%^  ev6q eXq
tDy q6 eq x`vYshIy g
q XXqYq6 v
^  `Fey ~wveuOp
v Q*gx`6`X ve$q `q XxXvXs`
` t5v`y 6g1  q `q Xxevs 
[gxe6ee ve
q XXqYq6 YZ
s ihzX  Xjey ~YjX|v66Op
tDy |gq XXq XxevX|
s v  t  Q6v`y 6g1  q `q x`vYs 
 t5v`y 6g1  q `q XxXvX#
 t}v6 {v
z  t5v`y 6g1    t  Q6/v6y { 1  q6 Xq xevXs I
zt
z t5|q`|Xv  `Ie6t {v @4v6y 6{ /vy `{{-
zezt
z t5IXy et q6v6e1 ?wX|$y eev6|-\  6{v
Xvseq6v6`w~6x6y $y 6
zt
z t  
v6Xx6~ qe  6$`ev6YqXrXy `
_* &*  0
 4E:"/ E& !+' 5'   2 &* @E8<'52 !+&
0'4**  <'0<'0'80".R%I0'
;'-Y M`-+% M4 "
2  240% 2,( 0,7"240'<"" 0,&N &*  &60\=/6 &   '8&6076  
 
(* "!+ &* " 3 ! 7 2 &* @74<'):'<'&** %!+0)24 "!+&
0;M8 W(<",20'<" #- &
!
#+9'&*  2 W( !%  '&020'< "!0%!+0)'f2"!+0<"524 !+&0=
G074"&602,( 0!I+ "2 
I0)(*"!  0   V* <'0, & !- I0EUI0'<'0,3*5 0W!%6+ J<'* !-!+0  !\ 0'
2 !%&0'(* "!% 5  " 2 & @7"=_* W7 17!% K:C/n82%!+ 5 0';< .YR%08 52  0)  <0
&0"20W 0'24 "!+&
0( !% ,6+  7(  &
&* @78<eR%"2,( 0\=
kjW(*0<7!QN 7a ."!7&*!+' <'0
2XR%0"!%2 "!+&0* *<'0,  1"f",( 3* ,7[=

*_ T#- 1"!+ *1!% ('<(* "!%'&!"<02 "!+&


0'U*& < 5" 0W!+7(*% <'0)' 8 V'U'(*"!+0
!-' "  < <EU

0E8&* *%! 0)2 "!+&0'f &0=_ <" #+"!%"*&  +94"`0!+<'743" 
(&* #: &
" 0'T Z!I &* =
 !+ 1247 0<,B@'< 1'0,KQ (!-*"
+ 54*?
:!+ &6I0,<'" 24Z 0'<'0~Ygv`qv ~{v6vejgqX
='F
6+,2ZI0'<'0 &*!% 7'40.YR% 
0 87:'"* 7QU "`0".R%I0W" '7UM80.R%I
0 4:'

M8   "2.' ""6


&
7 !- 01"!%9*#- &60\=
kw&*!+ " 0'J0.R%I0';<""
2 !%&0
;'-Y M`-+% M*
*<'0,  1"" 0'J0-!+02Z* 0'<0 *0520'6-!+ <08 3"N ='&6@'<" 10
&0"25( I0W 0%  8 80"!O(a(("= R-  =
Fragmento de Cdigo 5-6, un extracto del mtodo createSceneGraph de MorphApp.

teee y ~|q`X~YXFgew~Ygveqv ~{v6Xvejgq6eX|


t \gveqgvj$vB|XX6e$XvBX|q`X~Yw6gq6`

zt gq6~YXF|6ejOp eY hXvY}|q6X~Yjg6eeg-
t
t gqYg6$uwzJgzexG[vY5gqY6$uwz|%
t $zx
t {v$Iv{,ve~g`$zY$  IO Q  t  g$%
t gqYg6$uwF|``$gq6YX qvB[vY5gqY6$uwjg6e` |zXxX-
 t
t 6~Y|veqvhve`uwv$ Igq  
|q6$gq veujvY$ $gq Opgv`~{
 
  t}v`6uwv| $gq  6ev`u $|q [v{}ve6uwv| $|q  
e t}eve6u $|q   B~Ygv`qv6ve6u $gq  g%
t}eve6u $|q  B~Ygv`qv6ve6u $gq g%
zt}eve6u $|q  B~Ygv`qv6ve6u $gq g%
t}eve6u $|q  Gz B~Ygv`qv6ve6u $gq z`g%
t
t 6~Y|veqv[uj`Iew6Op$vX~
P
t  6$`uj6IeR ?FLp
[vY  6$`egeveu $|q -
?FOp t {v|q6Xq6ey y  6Ie6t eG ?@CBG@ E" w BG@ E E %
  tDuj6$`R
  t
t 6~Y|veqvBq` eYqG6Lp|ve~
P

 t eqGq6 eXqG[v{ `q6+ Q  qq %^  ~{`{Iy `` {ve~XtXv`Iy ex
e t}q6 eq
t {vX ~Ygveqey  eYq q`uG`7X|qYIy 6e Oq -
zt
t 6~Y|veqv[uj`Iewx` y rey Yhv6XqrXy 6
X P
t  6$`` vqXrXy 6
uw`Ie6*v`Xqrw[vY  6$`e*vYqXrXy `I$uj6$eR ?FLp {q `qX-
` tDuj6$`` vqXr`t {v ~Yv`x6X y 
*6exeYIvY``x6y X `v`|v`|$%
t
t gqeYv`u` vY~v`Xv6gqe
P

 t}6Lp XX t qexex`\ey x6 $gq6Y qve%

z  t5$|q6Y qgv
t q`xexe/Xy x6Iuw6IXR ?FOp|%
z t}6Lp XX t qexex`\ey x6$uw` X`v`qXrY%

zt
ez ztgvX$XIw6Qp e
z t  
v6Xx\gveqv ~v6Xv`jgq6XGuwv|exGY  6$` `
\ "!+
7+0. *"!$  !3"
07( 0' .'   "!- 8  2 &* 07*8&07 024 "!+&
0
&*!+' <'0'(* "!% +  7(  &
&* @7J<"eR%"2( 0,&
04< !  8&*  8<&
02,(*0"!I+ "2  0E=
_* W7 17!+ ,K:CC)2%!% 5* , &7* 5!+7
<"!- V <" 5(*0"!/40"!Q(a ('("=
F46+W(! 0'1!% "2 7U
0%!% ';%!+8&   J<"&6025( 07!I 2 "
 0,& !%' 4 7 24 &* 07 
. * <" 4  1"
0EU
0 0'<'0' 0';07.YR-* 0;'-Y M`-+% M4<

 J7:''"= kj5  2 "


<"5 V*3' "!+<' , <"!%&*a 7 4#- 1'!+ /gF '&'U Qb/ " 1'0U
M8 6F! 0"6 ='j0I0<"  
 24 '&* 07*J 07.*7* =/0!"(I07U( !+ , "(!%'&  !"<"4 "! <" <W 8 " 2 &* 07*'U
 *"2083*,XR-&*  "!E*(!+0'1!% 2 7=

Y#"% 87:

07 * 2,(  &  <' <<5*0,<, ,!-&


*%  7+!- 0"!QU'( 0'<!QN 20'J'(*"!% !/'T
 "*&    0
G
K-KEM4 'N '=
k'2 "!- 0<,B07 %!-*&6 07!+J<"
87:'
7? % " <'El*"exev
_ 080.YR-* 0'P 87:'&*!+' "* 007.YR-* 0W;'%YM6[-+M* " <'0,"*(! 02'<" 0<"
(* 0<5 0'J0.R%I0;'%Y M6[-+ M"=
k`
W(! 07( 0!+&* 0 ,"80.R%I0<, "( !: *&* 7U
 
 %   V* &607 1''0"2%!QN 5!+'  %7=_
0'( 
0J
('&  #- &
"4&074"
2ZI0'<'0
{v @4vy 6Y 6='ch80.R%* 
0 87: 5
%   V 1"*"!+ " 2
 &07807.YR-*I0 7
(*"! 
07*   V* <0)(* "!%  XRQ* "!E 0'( 
0'84"e- "2(*0<XR-&*&  @7(* "!% )(! 0E(*0"!+&* 07* "!

   2 &* @7 05 ,+!% '&&* @ =


6 $ee|v`6ujv| $gq  ev``uwvY$ Igq
G07
-!- M*5  &* "  V 580.R%*+0W807!:(a&074"6 "!-!% MJ<"0.R%I0'8;'02%!IM6[!-!% M
(&* #: &
<'0M"80.R%I04('(* !%  & W' g=
 6$ee|v`6ujv| $gq  ev``uwvY$ Igq e eYv`q6gq6X~vBq`ev`q`|q`X~ve
G07
-!- M*5  &* "  V 580.R%*+0W807!:(a&074"6 "!-!% M8<0.R%I0'8;'02%!IM6[!-!% M
(&* #: &
<'0M8"60".R% 0< (* "!:  &* '(&* #- & <'0E=


_  W !%&  6<'W4Z*+0<0J<"0 8E:


rYy x{v eveq6gq~{v` `vXqgq6~vGq6`Yveq6gq~{vX
kj" '&&* 07 ,"6&02(*0"
+<" 7( !-  &* <", W 0<0)40"!O(a=
rYy x{vgve6uwv| $|q $ve`ujvX$ Igq  Xv`6ujvX| $gq {
kj" '&&* 07 ,"6&02(*0"
+1"0724%!IM6[!:!+ M J<" )
0<0W807!:(a=
rYy x{v @4vy `Y |xe6e` v  Xv6y {
kj" '&&* 07 ,"X '&` 0"!"<"W(*0'8<',
) 0'<0W80!Q(a=
k'2 "!- 0<,h (* &* <" <";<"
87:'
X 1?A@CB  E6/  E B FE ][^@ E E
\(*&`#- &
3",*
0'<'0}(*"!-2 + &
&
 0<5 '&`-!% m%
&!- -!+ , # 0!-2 &* @74<'
(* "!- 7 &* E=
[^@ \ E
X1 ?A@CBX E ? ZE ( B \E (B F E P
\(*&`#- &
3",*
0'<'0}(*"!-2 +" &
&
 0<"5 '&`-!% m%
&!- -!+ , *# 0!-2 &* @74<'
102%!QN 7=
[^@ E E
X1 ?A@CBG@ E j" B F E ]
\(*&`#- &
3",*
0'<'0}(*"!-2 +" &
&
 0<"5 '&`-!% m%
&!- -!+ , *J &6I0!<)( 
0''=


   
        

\ 524@<7 0)(!+ % , ;+Z& & ( !+ )(!+07( 07!+&* 07 !"< "  J<, 080.YR-*I0'
' * " 8 %!+ ZJ<072.!% ;MJ *?
%!+ '='\ )( 9'1" , ?(  &
 240<"" 0<'
  2 '&  @JM4&@240)
%   V "!E *&
88 * * ,7H(* "!+ &
0  1' !02,.!% ''=
 ,072.'!+ , 0J07.YR-* 0T ' * " .  9 <0 ," &02.'  &* @74<' 
&
!% '&6 !QN 6- &
2 *%!- " ;M4  *&
J<" ' "! 0 ' !I- "g=`
02.'!%' <'05!% 
< (  &
!\240'<" 0<5  2 * &* @74 540".R%I0 ' * "6(!+ *&  <4#-7+J<"
  V"=_* * 1"' + &
&* @78< W' <" &*!- (*&* @78< 240'< 0<5  '2 * & @7  <0,
"
!+ <"!: V* <0"!< *  7PM4&@240W 5 
V 
 !+ &6%f &60E 8&
"!% &6 !ON % &

2 *+"!-  (* "!+ )(!+0(*0"!%&* 07 "!" 0"2,.'!% '<'0\= h < 5* <", J 1 "
+J
'&&* 0
*?'(  & 5 8&
!+ '&`%!QN 6% &
!+" *  +J<"X
* * ,7S( !% "
240'<" 0<
  2 '&  @"=
  & "             

kF02.'!+ !70".R%I0T '   8"8 *  d<'7( 7 <<'52,*&a 0'T#+ '&`+0"!%='\ 
'&
&  @
(!+0(*0"!+&* 0E* 5* <" & !: (*&  @4 ".'!%*  <" < 240<" 0<5  2 * &* @8<  hU <"
240'< 0<&0" 0!QU
M8<'"
240<'" 0<
02.!+' '<0\=_* '(*'&  #- &
'&  @8<X

*  7
(!% 
 W* 5 # 0!-2 '&* @729J<   < 
0.'!% 280< 0<"5  '2 * '&* @7J< * 
7[= G072405 52 M 0"!/(* "!  <5 5  2 '&  @8<  M8<"
240<'" 0<

0"2,.'!+' '<0*,. 
,"4U 
W(*'<',*&0
%!% "!E296# 0!:2 &* @E4(*91 * 

0".!+5*74=
8'"" ,'" ' 

4E
F4"
2 <05!%' "U 08&60 0"!%43"W(*"!+&* .' 2408
0* &02.* '&* @4<5 
&
!% '&6 !QN 6- &
T#QN * & J<'"60".R% 07U <5 8&
!+ &`+!QN 6- &
J<, T#-"
+J<5  VU
<, 
( 0 &* 07*!+ *-  J<"5 0J0.YR-*I0'8 5 T#-%J<", 
VUM8<9 1 0< <"6&* 
 4 *"`07.YR-*I0\= *  E>
-   V* ,280<" 0<",  '2  '&* @7(* "!%  (! 0? 2 !\ 4#QN  &

< 2 <'0W!%' g=' !+I0<"  '&
&  @ ?(  &
 240'< 0<5  2 * &* @78< * 
7J+Z!:2  081*"!+  =_*  '&&* @E,w= C<'W ( '&  #- &
&* @8<"X * * 7
(!% 
 5 8& &* 0E*24 +"29% & ( !+ ," 240< 0<"5  '2 * &* @78
*  7[=

_* '&* '&  @4< 280<" 0<"5  '2 * &* @7J<""( <"<"%!+ '&` 0!+'l (*"!$#: &* 
 0!-2 " *U <" !+&
&* @4<5 5  V  U
M <" !+&
& @78 "60eR+0<(*&6+ <'0! \ '<"29
<, 8&
"!% &6+"!QN % &
2  "!:  J<60.R%I0M4<'5 8&
!% '&6 "!QN 6- &
J<, 5 
V"=_
 1"'!+ ,K{nJ2,%!% 5 0';%!+T *'&` 0!+( !+ <0'; *Z"!I% &J<'W* *"(*"!$#: &
 6#+Z"!- &
7=
_ 0T &6I0!%( !% &
<" 4 *Z"!I% &W('<;%"!7<" %+ J< !+'&&* 07*J<(* < 7
<0<
(&N #: &* <' <8<, ' &* E= [  <05 0T &I0!+8<5 5  VJM8<'"`0`R+0  !QN U
 
&
9 & ' 4J% 2,( 0<"eR%'&**&* @E=/0"!\ 0 +07U*& < 4 Z!I- &
<"5 6#%"!%
( 0+ &*  27+*5!+*<'!- V* &0"20W*  02.!+ <" #+!-"
+7=

 240< 0<5  2 * &* @7 *&607!:( 0!% %!+;% ( 08<5!% #:  ?' 0J<", 
V8<" 2'*<0W!% gl
"2.' +U*<" #- 
0EUM4(*& !O=_* 5!%*#- *?' @78 2. "
+5!+'  <5 , 
V4 "2,. 
+U  V
&0 6% "
+<5. XR%0W gU *  &7* E=_ 5!+ #Q  ?' @8<" #-*
4 5!% #-  ?' @7
07!-2 
<5* 4#-+<", 
V8<"
<5"J07.R%* 04 ' * |=_* !%*#- *?' 07*8'( '&* "!+;
0E 
!+*#- *?' 07*;
07.!%"  2 * <" J<"5 8#:*7 <W 
V8
0.!%5807.YR-*I0EU*3"0&!-!%
&* "!I J* %* '&* 0'=
_* W7 17!+ ,K:CW2%!% W* `#%"!% M',(  0W!%"*<'!- V* <'0'( 0!" *  ,[=_ 0';%!+
%(
0'J<'5!%*#- *?' @8 )(<; !7 `#%"!+ <'5 W7 1!% ,K-CE='_ )(* "!I 529J0' & !+
<, 6#%"!% *?a .*
@" 0W ,!+*#-  ?' @74 "2. 
 \=&
"
%! 0,<'5 6#%!% ,6+9,  '2 <'0
( 0!\ 5  V8<" #:  M4 2,. "
+E= G0E* 6#+!%  V'`M* , 
V.' 7 &
U W!+*#- *? @
< #-*
4 *V|=_* )( !I 529.'!-   "
 <'5 '6#+!% 8 !+'  <'0<"5 5!+ #: *? @
(&*' "!7&60E!+ #: *? 07*4 "2.' +4M4< #-* 7=

+)*  7 %+ "+'J,w+P"-  I


k&
< 8 Z"!I% &
<&
<" 0.R%I0  * * ,
&
7 W!+'3"' "!%5; &` 0"!<5  V'U
&6I0!<60eR%07U
M4&
9 &*' 0<'5  0"2.!+ U'' )(
07!+&* @8 17 #- &
%  <'6&
9" &* 0<
!+7(!+*
 &* @E8
5 %   V  0'T *Z"!I% &J02,.'!+ <0=_* &

% < <,<"&
9" &* 0W(<
!+'<"&  !  e &6I0!"<5 
VU
0,"X &6I0!<60`R+07U 0, "2.0T &6 0!%J
04&
0 + "
+'=
e &6I0!"<, 
V48&07  +&* 7 <'0)  W' W 
V8< !+'&
&  0* |=$=FX &`I0!"<"60`R+0,
&0 6% "
+W( 0!"<" #%&6 07U* "*3"5(*0<"20'8'(*&  #% & "!ET '&` 0"!'  "!- ". <"60`R+0
*
7
<0)'2Z*I0<'0<"60".R%I0h =
% I8+"dQ7Y- ' 5GE * +'
 -!+ 43*, 240<" 0<5  2 * &* @8 5.   4#QN * & 7U 0T#%" @2 0'#ON  &0
&0"25( eR+0 0 5240'<" ""= .
' 27 7U 072.!% '&*a <" W( 0!E `#-!% 
0.'!+,
(  0) 0,6%97 ) 1"'!% K:C\=j0 780.
 07U
 "2.' Z;#+   5 5  V!+ #: eR% < <5
`#%!% 
0.'!%*( "*0E=
b/ "2.' Z;#+   5 5  V!+ #Q eR% <' < <',*( " 0
0.'!%, 6#%"!%
3"<W'* 0*5!+ #: XR- 4*(  0\=$=$= * &
Z "!% E=
24*<'0,8<" #QN &* &60"2,(!% <""!E &0"25( XRQ < <,<&9" &*' 0<5  '&
&* @78<'5 5 
V"=
G07
 <"!%"20 < #: &*  <<& " &* !&@240,& <" 1'0 <'"6 '1" 
&
0"25( 0"!I% 7
* <&a* E=_ J10 ; ' "*8<"5 & ".V <"5 <"&a 8< % 
 J<" !+&
&* 0=
[ *<05 &-!% 40.YR-*I0EU &60  * @43"5!+'  W(! 0'<7*&
52&a* 'J10 29
(*'3"7] 438 ' XR% 48< % 
 J<" !%&
&  0=
(! 0&
0*5!+( +,2,& a T & 
+J<3*, 1 *4  *M W( 0!6<" 1E=_* &6072,( XR: <' <,<5 
 "!% &
&* 07*J<
 5 
V4&0 0'J0".R%I0'T ' *  82 M8*2XR- 
 E=e[ 1"* J<5 J<" #+"!%"*&  87-!%
 0'8&0"2,( 0!I+ "2  0'J<"6 1 M 5  V80735 5  V
0% "5  1" , <a!+7 &*
 
V 0*W(*1  5 0'J0.R%I0' '   
7M4"6*#%'&`I0<"5 1"!% * <" <5
 17 #% &
 
(* "!+ 5 5 
V"=
 "!+ 5!%<*&* !\ &0"25( XRQ < <<"&9" &*' 07U* 240'< 0<5  2 * &* @4&
07 * <'"!%

0" 27 W80.YR-*+04 '    2 240- "2( 0E=G0 *&*7+"27 7U J
0"2.!+ ;M
 !+*#- *? 0*+"! K:0.R-*I0'
0 0!%7
<"!: V* < ( 0!" 280<'" 0<",  '2  '&* @E=
\I0'J<0'4 #+'&6I0!%3 "!+ &60E
 <"!+ '&* @E8<I0'<0 0J0.YR-* 0'GR: 0&078 
( 0 &* 07*!+ *-  874" 2802
I0,<'5 5!%(!% 
 &* @E"=
kjW&
 +
3

& 0 * <"!% ". "2


 5298&
9 & ' 0)(* !% 5!% <"!- V "!E"* 
0"  &
* &074*#+&6 0' 
 !+K
0.YR-*I0'= *  ,hU
M4 !+6I0<"5 0J  "2 J17!%9 #- &08;- 25( 0W!%' "U
0)a* '& 4&
 0
<*#+'&` 0 
 ! K:0.YR% 08" 5!+7(!%*"
+ &* @7"=`[ 1"
0'8<'5 0'8 #-&6I04 1 0"!- <0J<"
2 <'0W!+ 6 5('<"" 17!+1 ! 5 8 &
* 4&  7
<0*' W*& 
!- 0\=
8'"" ,'5G 

 240< 0<"6&0" 0"!/ 0,6 95. * <0, 4#QN * &6 E= * * ,7>20<" "&60 0!"<", 
 &
;M 0'2 * "!-  4&0"20W* &
02.' * &* @E8<5! 0`R+0EU6 "! <"U
M4 *V''g=6&0 0"!
.'  &
07U*&6020,&60 0!<, 5  V80<" 2 *+"!- U*4 &602.* '&  @8<W 0;%!+
&0"25( 07*
 8&
07 5 
+" * <' '<W29*?' 2 7=*B <" 5  V(!+0'<&WJ 0 0,&60 0!"<"5 
V
(&* #: &
<'0)( 0!\'J-( )!
6=
240'<'" 0,<'W  2 '&  @8 , (  &
 & '<' W 0<
 0'8&0"2,( 07*7
 J<"&0" 0!/!
6G=/0!eR%"2,( 0EU W.*0" ,!%0eR% 7(!+  &* <"W'
  V4 *V'  0 "!+94  * . W(I0,3"5 5  V4 *V* 0*5!+ #: eR% <<"540.YR%I0)! 0`R+0\=
F!+   < <EU "6&0 0"!7* &0"2,.'  '&* @EJ<"W2&a*  0*1 %*<J<0*<' <"5 5  V'U
 0 0 0%!+'=' 280'< 0,<&60 07!/!
6P!%"('!+*
 52,*&*a*0'8&0" 0!+U'(*"!+0) 0I0'<'0'=
"g
- 7

5 ' 
F8  ,hU W( 0!+&* @74<'5  &
 <07 <W 0J0".R%I0'T  *  J 07  '2 <0'
( 0!\* 8#:7 <", 
V8<"*+!:2 * <  5  2 5 5!+1" @78<",6#: **&  <"*0.R%I0
<, 
V"=_* 5!+1 @74<'5 #:  &* 529J 2,( W( !% 5* 8#:7+<5  V** ,"80.R%I0
/7 ';M4"
2ZI0<'0{vY {| v`X~Yy Y
*``xeg'<} *Q= [ " <05"80.R%I0#-*7+<"5  V
&0N|2  J<'5 #-  &* 5 
 "!  '&
&  0 &0E 0gNg2  J<'5"J07.YR-* 04 '  gU
 5
%   V*
 5 
V(* !+  0"2,.'!% !I0<05"`0.YR-* 0E=_ 0'Ng2 +J<,6#: *7 &* "8<5"* 5  V
<*+"!-2  "3"Z0.R%I04  '2 * !QU' 0,3"Z)(
07!+& 0*;<"0".R%I0';*5  2 * ""=
8'"" ,',F7+'
 240< 0<5  2 * &* @78
02,.!+ I0'<0 0T Z!I- &
<5807.YR-*I0 ' * "*(
07!&
<
  V8<'56#- * &* E=_* 072.!% <","; *Z!I% & *'2 <5 J02,.!% '
(!+0(*0"!+&* 0E* < ( 0!&
'<' 4#-
 <5  V(* "!% 5 4 Z!I- &
7='
!%I0<5"J07.YR-* 04 '  
 02,.!% ,.  97
<0* 
0"2,.'!% <"5 0'T *Z"!I% &'=' 240< 0<"02,.!+ <5"
0.YR-*I0 '  "U*(*&* #- & <'0,&02405 *-!- .'
+0'*'+ }j'"G, 7* :U <' !:2
&@"20 ,a & 6
0"2,.'!%' <'0)(* "!%  !+6 0<0.YR%I0 '  "g=

 G7 7% * I%-  j"G,*
"(*&* #: &
 280'< 0<"072.'!% W(* "!+ 5 0'
0.YR-*I0'T   " J<0*<',"
240'<" 0<' 0"2,.'!% 
(*&* #: &
&0280) 0<"
BT 3 9"Thh[U*h 3 9F 7j U *h 3 FwU=
" 3 =w".*"20';  !&* < <'0
M* 3""&60 0!"<540.R%I0)B %
$%: '*I &
 5 %   V* "46
0"2.!+' <'0\=
F4"`
0"2.!+ <'0);+EU*& < 5( ?6 02.!+ &0E"; * " 0!<!- * '<0,<,
 
 "!:( 0 '&* @J-!-   ' !<"X  " 0!"<'5 
072.!+ <&
< 4 Z"!I% &
<"*(
0N 1'07 053", 0
 &* "!:!+ 7='F"`
0"2.'!%' <'0)( 7
0EUI0<'0' 0'( ?*" J<'W(*0"gN 107 0*  17* 74
  0"!<5 
0"2,.'!%  W( !I- !"<W'; Z!I- &
<"*( 0"gN 107 0\=_ ) 1'!% K:W26-!+ 5*
`#%!% 
02.'!%' < W(  M' 6#%!% 
02.'!% < W;+"\=_ 4 "
+ eR% <"

0"2,.'!+' '<0}( "*0, 4 " 0'&* <' <, 5!%"('!+ % &* @78<"`
0*# gT "!%7=`
02.'!+ <0
<5;7'+% "*5 4 
 XR- <5  7( "!- 7 &*  ' * "g=

c f % 280)(


I05 "
+J<5 ! 5"4XR%2,( 07 0'J0".R%I0T#:7 8<'5  V,
0 040.YR-* 0'
B
' * " '=g*&   
0* * 4#-
 <'5  V8* -* <
%!+0<5 4 '  7U 0 "!+9
!+7
<"!- V '< 7=
#      $       &     3 " *     1        

kjW*&  + ,"* *!: <')(*  0( !% W(!-2 - !E 5  '2 * &* @78<5 0'J0.R%I0T '   
4" ' !  0  !I% |=eG<29J<&*!% !M8<W(*"! 
0E "  V* "!"07.YR%I0'(* "!% 5!+'3" * I0'
(* "!I- &* "!+J<5  V'U*&
< 0.R%*+0<"5  V8<'.* ! '1!%1" <'0, " &7 !- 01!%9 #: &0M
a "."!7'( '&  #- &
<'0W80.YR-* 0}" /=
B <' 0.R%I0 ' * "63"**4 * , 
0"2,.!%' "!
<".4%"!(*"!$#- &   0!-2 " TM4& "!+ &6+"!QN % &
J<"524 +"!- "g=`[.* eR+0)( 0'<"240' "!
 5!+'&
*+ &07 0'(  0*&  "!: 0''l
1. Especificacin de la fuente de Luz
1. seleccionar los lmites
2. aadirla al escenario grfico

2. Objeto Visual
1. superficies
2. propiedades de material

k X#+ "   " 1'*0J<" 08" "2"


 0*0
)( 0'<!%9,** !\ 5  '2 * &* @7"=_ W('!+*"*&*

<60".R% 0  - "'2  0`R+0''+7 <'5807.YR-*I0 ' * "*(*"!-2  
240'< 0<5  2 * &* @,( !+ , 0".R%I0E= k8"60".R%I
0 4 - "6"`0.R%* 04 ' * 6 !+9
&0" 0"!+ <'07U'(*"!+0) 0
02.'!% '<'0)(*0"!"*G -
$%: '* 05 0'8&60 0!+8<4 *Z!I% &<
0.YR-*I0)J'-Y M= kw*
 0)60%!+0, 97('!+ 7 'U "`0.YR-*+0 "!%9,.' 7 &0 @"  <0\=_*
 1"'!+ ,KQ52,%!% 5 *?*&
(*&* @7 
V '<' &* 7
<0W807.YR%I0 ' * "e-  W'40.YR-* 0
4+"- *( "! 0) 0% "*(*"!$#- &   0"!:2 " =
p|qrYqXs`t ujv`x6y q
t p$z6Et veeq6 vXxev`Iy X |qYgv E sY~{v`{Iy 6 gY7q6e6xeh y 6{|y FFy |X6
v`~Yy y hY6Iuwq` wy wevXuwv| Qp$ve~
_ 04"!-!+0"!%8&07;#-"
+J<5  V('<"",
0*!"#+9&*  J<"*&0E-!+ "!O='j0Wa M 1f
*  0<3*<XR- 20'J  
V8 &
* "!- 017!%9 #- &0E='G
a *M  1*   "!I W( 0!\*0
#- R% "!E 0'N|2  ;<5 #- "*&* <W* 4#-"
+<W  V"=F4&** " 3" !% <"I08&
 0'U*
0.YR-*I0,<", 
V 0 *<"!%9)  1""* 5 #- * &* 
0.!+5 0J07.YR-* 0T ' * " 4""

&
* !- 01"!%9*#- &60\=cB40.YR-*I0 '  "(*'&  #- &6 <'0,&0!-!+'&6+ 2+W( !% 
0"2,.'!% '<'0
J<'&  !QU 0,&07"J07.R%*

0  ":  \'4 &


" !: 01!+9*#- &0 ' *0W(!%04#:*!+ <'
 0'N|2  ;<5 #- "*&* <I0'<'0' 0'J0.R%I0;#:*7 <", 
V8 5!%"*<"!: V* "!+9 W*1!+0E=
\( 0 .' (&* #: &
!7&60!-!%'&` 2
 W'  &
 7 &   J07.YR-* 04 ' * &0
 8&
!+ '&`%!QN 6- &
2 *%!-   #- * &* '<' ( 0!E"J07.YR-* 0<5  V;M43**5!+*<'!- &

W*1!+0E=_* 0!: "
+ '&  @!+" %  <'5 5 
VU "`0.XR%* 04 ' * gUM < !+'&
&  @4<'5 8 '  @7
%!- 4BRQ*1'0,"
!+ <!- V* <0E=

% JW' JF7 '

kj1f 0W2"*&  07* <'05 !-!- . 7U &*!+ !E!-"*<"!- V* <'08&


08 0"2,.'!%  2(  & 5
(&* #: &
&* @74 "('! 07( '<' <, 8#:%<"5  V;M8<5 0'J0.R%I0T ' * " =iw 6+ "
240"2 0EU'  &*  } *E
 0J0.YR-* 0P
 +- "`
5a 8<  &  % <05"4<* "  7= k 
"2. !%1'0EU 7(! 0 '&a*97 <'05 0T  " 0"!-( 0!< #-'&6I0<'"XMJ*8& "!+ & "!QN % & U

( 0'<"240(!+0&'<"! 5  2 * "!\2*<0'T  !I%  =_ 0(!- 2 - *0J10724Z%!- &60'
1*"!+ 78*"(*"!$#- &   0!-2 " 8&*  <'0  0  &  + ""=_ 0T   0!+(
07!"<" #%&6I0,<'"
0.YR-*I
0 +"- (*&* #- &
"'40.YR-* 0 ' * " !+ V 0 .' E=_ 0T   0"!%( 0!"<" #%&6 0<
 0'8&0 6-!:*&6I0!%J<"5 #-*
+<5  V4'( '&* #- &6 ;#-7+J<", 
V %   V .' =
cj "*<'0W &*  ,G , 7B' " &0 0'J<0'2Z*I0<'0'J<" 7!+ 172
 0<&@'< 1'05K
n  5('! 0'<7&W' *"!+
04 ' !I%* "3, &*  M*,"  0" 6#+!+ &
07 4&
!% '&6 !ON % &

2 *+"!-  8&08 T   0"!%( 0!"<" #%&6 0W  2 * <" W( 0!\J 0" 00".R% 0#-*7+<"5  V
[ 
-  O=*(!: 2!\24ZI0<'0<"e#-!+ 1"2
I0<"&6@'<" 105
* 2,.' W'807.YR-*I0
4+"- &0'40.YR-*I0'+' )(* !+ 5 6#%!+ E=6 1*<0W2Z* 0'<'0,& !% 5
0.YR-*I0j+7 '8 "( "!%  "!$  !&0"20W 5!+ 7N V4<'5 ,!- 2 <&07
  <'01"!%9*#- &0EU
<'(Z4 1"!%'1' 5 0J07.R%I0'G'+MT 7: 7  "`
&
* "!- 01!%9 #: &60\=`0.YR-* 0
4+"- "4"
2  0`R+0<'" (*'&`+0
 1!%1 , 60.YR-*I0WG'+," &0 %!:*&
&* @7
<, 6#%"!% N|*' Wn`CM)n`='chT  " 0!/(
07!"<" #%&6I0/7* *""+5(!+0(*0"!%&  07* ,
!+'1" @8<56#- *7 &* W(* "!+ "`07.YR-* 0 7
- "* gN| ' Wn6, n =`<" 1!% "2 <"

&
* !- 01"!%9*#- &60<"' 52"
<0  !I%  (* !%'&
,_ ) 1'!% KQE=
Fragmento de Cdigo 6-1, Crear un Escena con un Esfera Iluminada.

eveq6gq~vB~{|veqY|v `Yveq6gq~{v`|
eveq6gq~vGq6ev`q`
[vY eveq6gq6X~v`|%
 qgv6$y quwqv6$y q6[v  qY|v6$y q g%
q6eveq6 t {vY  qv6Iy q $ujqXv6$y q %

t
zt
t
t
t gvX$XIjqXXveq6
t
 t
gq6~YXF|6ew~Ygveqgv ~v`XvB||
 t
 tgq6~YXF|6ej{~{v6XvGv{Dgq6X~{XF|``eg-
e t
t)Y~v6v
t qexex`E`y x6$vY eYv6gv6  t `v`|vt E E' E BeI? F 
zt}~YgveqXv XXveq6gq6~v6gI$%
t
t uGey v6{$ey {
y 6{ [vY u`y v6{IXy 6$g%
tD y 6{ t {v {$ v6~y 6Xxe$XvY}6XXx6y  eXv6gv6g$-
t)Y~v6v
t qexex`E`y x6$ y 6{ %

 t

 tgvX$XIjY~v`Xv

 t
_* N$  T,M4<" 7!+ 172
I0,<'&
@< 10K{n (
0<"!ON 8 "!\!+'"25( V <" (*0"!\
 1 "
 5N|*' 3&*!+' M*
W'40.YR-* 0  - " 
@7 240\=
XXveq6 t {v  qYgv` y q6 YvY  qXv6$y q gI%
_ 080.YR-* 0'P
 4 - "`078&
02,(  "2%5("!+07* "  V ". 8&0 0( !%9"24-! 0'8<'
&0 6-!:*&6I07!QU
 2,(  #% &
" <'0,"
*
0<"0.R%I0P
  ": " 
@7 280'=/0!7"6&07%!% "!- 0EU
&*!+' "!E"80.R%I0 7*" "
@E 280Wa & 52&a*0W29J<EN #- &*   <" &
&  @8<WgNg2  J<'
 #- * &* E=w.*240; 7*"!74& "
+ 3",*
02,.!+ 2  0<"60".R% 
0 4 - "
(<Wa* '& !760.R%I0,
' 529T#+9'&  `<&6025(* "!I% !7"
%!%4  "!- 02  0`R%0J<" (&6I0EU
<  <'0,&
0"240)!+'  <'0WT#:*&  07* 2 7 052eR+0!O=

  EB " )(! 07(
07!+&* 0 5 0'J0".R% 0Jh I%"g[ * M*  R:I0,&074"

!+ "2 <"4  6+ 1!%9*#- &
W(* "!% 6<" 1!% 2 <
& * "!- 01!+9*#- &60W20%!+ '<'0,7 ) 1'!%
KQ7= k  %!% 
6#+0!-2 &* @7'U*607.YR-*I0WG'+M460".R%I0/7*" ""+,6+ !+9
&
"
%!% '<0'4"60!- 1UM8 5 
 !  '&&* 0E !+97=e0.YR-* 05B"+ 02,.!+ 5(*0"!\
#-
 ' " -  Q=_
)7 1"'!% K 2,%!+ 5 5 24 13,!-  &07';# 0E <'0
.'  &
0E=_* (*&* #: &
&* @74<'"X#+0*<'0) 0 52%!+ ,4"&6@'<" 10\=

_* 6#+!% <"5 ) 1'!% K J<"&60 07!"1!-  #+0"!-27U 3"4"e * " 0!\( 0!"<" #%&6I0,<'
 W(! 07( < <5 2,.' "
+< 24 +"!- "g=

*_ W7 17!+ ,K 2%!% ,3"5 8 & "   2 <  &
2+&07  V4 2,.' +

0407(* '&
'=*G0240W ,  '2 '&* @74 2. 7+' #+0"!-27U(!+0'<*& 5 
0"2,.!%
 # 0"!-2E=_ 5 
V4 "2,. 
 +9W(*
* '<' )( !+ W  "* "!<5  V'  &
7 <'07*<'0%!+ 
#-
  0W  2 * ""=_*  < &* @78<'W' 4#-
+G+ - "   7a !%9  &
*
29+!% %7=
g  !I+  <0, !+ '12
 0<&@'<" 1'0,'K-C  !+ '1"2 0<"&6@<" 105KYn   ] <"
5h + % 7 "*" 5 ,!+ "2 <"&60E+ <'01!%9*#- &0<'5 
& * E=ch 8 V29 0'
  0"!+(
07!"<" #+'&6 0
W %   V* "(* "!+ 5 4#-"
+<, 
VUM8 5
-   V 5
/7  "'+W( 0!"<*#+'&` 0)(* "!% , 5!%1 @EJ<"5 #- "*&  7=_* )7 1!% ,KO,2%!% 
< 1"!% "2 <"
&
* "!: 01"!%9*#- &0,3"5!%'    0'J0".R% 0(!+07( 0!+&  07* <'0(*0"!7
  EB " E=

Fragmento de Cdigo 6-2, Aadir una Luz Direccional a la Escena.

tEy gv`~|y 6Yq Xy 


y {$ [v{Dy gv`~$y 6q6 Xy $g%
t y 6{$ t {vY {| Yv6X~Yy 
6`xXIYvYD exy X eXv`|v`|$%
z
t 6~Y6uGy {vh7y gv`~|y 6Xq6 ey 6Y66Op|v`~
t Y~v6v
t qexex`E`y x6$ y 6{I %

*_ W7 17!+ ,KQ52%!% W , 2 1(!%0'<*&* <" 5(*0"!\ &0"2,.'  '&* @78<"5 0J<0
#-!+ 17247 08<&6@<" 10\=_* 5 #- *&  <'"`07.YR-* 0' 7
- *" ( * 'J
W('<'4 !
&0 4#:+G + % E*"   O= .
 2+7U ' '&
 "!- , W( "! 
0E* "  V '&* @7J<"5 0'
!+3'  I0'( "!I% & ' "!%J<5 0'J0.R%I08<5 
VJM6m+0W 8&
!% '&`+!QN 6% &
2 *+!-  J<"
0.YR-*I0 '  "*( "!% &*!%' "!7 &
  
 "!% 
 =

|4\*8>7 E4Y%*I} 7


*"- W8wa -

*_ ,6#: *&  <"580.R%I0<5 


V478" 2"
<0}
0,6+9 *#%&6 '<' )( 0!\ W( 0' &* @8<
0.YR-*I0,<", 
V4 &
" !- 017!+9*#- &07  42,. !+1'07U*60.R%I0}*7*8!% #+!+*&* <'0
( 0!\ 5  V8*
 0,6 9E='e0.YR-* 0)" 8 9YR%* 0 5 8&0'0!+<* <  0& " J<'"

&
* !- 01"!%9*#- &60<0*< ,
 "!  60.R%I0<5  V"= G07
 <"!%"20 W7 1!+ ,K{n`o
&0"20,XR-25( 0\= 2 *24007.YR-* 0}" 7 *+W!+ #%!+7 &* <'0)(*0"!7<0'T#-7+J<"
  V(!+07( 0!+&* 07* <0!%'1" 0J<",6#: **&  < % J<'. <'  %!+  '&  @
(!+0(*0"!+&* 0E* < W( 0!760.R%I0,F+7 6 7-8 ""=`0"!- 1'4<"`  "2 <
&007! <* '<  0& 6<'"6 &7 !- 01!%9 #: &0<". eR%0<'"6F+*6 -8 746 9CW2*-!+0
( 0!<". eR+0<"`0!- 17J<" 2'*<0 _*0'&
 EM 0-!+ 5!%1 @78<5 6#%"!% <5 #- * &* E=

k6<'(* <7J0)*07U 0'J0".R%I08<"5 4#-*7


 <W  V8<'"6 &7 "!- 0,1!%9 #- &07 ) 1"'!%
K{n`o5 #- *7 &* 602.!%' <0   V
\<"`0.R%*+04 ' *    2 * <0*  0'Ng2  J<
0.YR-*I0 '  "  +!  '&&* 07* 4&0E 5!+1 @E8<5 #-  &* <'5 0J07.YR%I0J<'5  V"=
\(*&* #- & "!E ,!%1 @EJ<"5 #- "*&  <5 5  V4&60205"8@ 0}" 4( 0<"!QN W*0
#- &* 07 !/(* "!% 4+0<"  8 "(  & '&* 07 '=
     :  % 7  


 S(!+0E(
0!%&  0* &  *-!+0&*  ( "!+ 5 &
=6b/0'<" J <'"!-  "4<, &   
'  Q=_ ) 1"'!+ ,Knn826%!% , R%!% "!+3N <"&   J<"
*  E>!+ '&  0* < &07
  &
=' 7 :U &*  , .*%!% &6 7U'(!+07( 0!+&  0 5 0'42Z 0'<'0'TM 8&0 + "
+J<
&
"( &* < <"8  0'&* < '( "!% 52 (' "!"66% <07U*&60 0!QU
M 0gNg2  J<'5"J07.YR-* 0
'  Q=6 <'0<5 , 
V4.0"   0,3", &6%  M8<'* &6%  5 5  V"=

6* 1 


 5. 03*<'W!+*#+!+*&  5   , 0'2Z*I0'<'0';M 8&607
+ %8<, &   
'  Q='w.20'!+&
0!+< "!35 0'Ng2 +J  &
&* 07 '<0'8&078{vY {| Yv~y 
exX|
'&`-  " 5  V4&   <'05"`0.YR-*I0}" !+ #%!+ &* '<0W !  &
&* 07* ,&607 4 '  7=
_  W !%&  6<'W4Z*+0<0J<", ,[ 
}' *
'   &*  , .*-!+ &6 ,3"&07
% *4  "!- .' J<,eR%2,( "!&
0"2,*J  0'<" 
  &
=
rYy x{vgE6 6$|76 6|zY~` 6g
kj" '&&* 07* "6&0 0! '&`- 6<, 5  V=
rYy x{v E q6e v6$e6 veq6jgqgvX
B&6% * M8< &6% * 5 5 
V"=
rYy x{v {| v6X~y 
exX *6exejX6exX{
kj" '&&* 07* , 0gNg2  ;<'5 #- *7 &* <", , 
V"=
kG2 !- 0<',h 7( '&  < <J<5 ,[  } *
e1?A@CB F
e E " "JB`?jE7 B D E
P[@ E
e1 ?A@CB E B FE P[^@ \ E
e1 ?A@CBeD?j1? B DE P[@ \ E t
&' 
+

_ 080.YR-* 0'J<5  V4 2,.'  )(!+0(*0"!+&* 07*  *V8<'5 52 2 5 + * <' <5"JI0<  
 0&
  V* &* 07 ;M4"J 0'<  J<" !%&
&  0=_ 0'80".R%I08<5 
V4 2.   5280<'" 7
  V!+*#- eR% <' < <0%!+0J07.YR-* 0T ' * " '= k
2 !+ "280' (!$#: &* 5 #+"!- 0!<'
6-!+0 & !- I0!- 0EU6 "!+240 5( !  5 #+"!- 0"!<6 & !- I0"!: 0, *3*)  1"" 4#:
 
<, 
V46%Z<"  <0< !+&6 27 ,4 (*"!I#- &   52*083* 7 1 280''
 9"2,( !+ W.* eR+05
&*!-  0"!- 0=_ 5 
V435.!:   . Wa* '&   !-!- .* ,""X#+0 <'0<"

&*!-  0"!- 0
5!%*#- eR+@,4"` 0M4780%!+0'J0.R%I0''='F4 "2.' 7  -'!%  8&0
2*&a*080.YR%I0'U 5 
V8 ,!% #- XR- <"
<",2,& a0J07.YR-* 0( !% W(!+07( 0!%&* 07 "!E , 
V
"2.' +7='_ &* 
 " -  "<'  , 2' 6 *#%'&`I0\=
6* 1 
 5. 03*<'W!+*#+!+*&  '2"!+ 5 04&0 6-!:*&6I0!%J<"5 &   
[ 
-  O=_* &*   ". %!% '&6 } *E(! 0(*0"!%&* 07* , 02Z*+0<0;M 8&
"( &* < <
(* "!+ ,6 &*   7'2!% < 78" . 0'3<5!+*#+!+*&   
 !: 0!+=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 &*  ' 
-' 7
cB80.R%I0#-
 <5 *V4 2.' 7 )(!+0(*0"!%&  07 , 52 *2 5 
 
 <" <,<, 
V47JI0'< 
  0&
  V '&  @7;M8< !+'& &  0*=40'<" 5 &0"25( XR- 5!+ #:  ?' @ 
 "!+K-0.R%I0';<"5 5  V
(!% 
 ,4
&
7 * %!-  =
u `y v{$ey 6{|g

G07
-!- M*5  &* "  V 580.R%*+04#:*7+<5  V4 "2. 
 W   <'0W 0J 1 "
 
  0"!+(
07!"<" #+'&6 0El

lightOn true
color (1, 1, 1)

u `y v{$ey 6{||E6 6|zY~6 6g



G07
-!- M*5  &* "  V 5* 5  V4 2,.' +5*  <'0W 0'( "!%92*-! 04(&* #- &
<'0=
u`y v{$ey 6{|Ie veq y k ?F6Y 6|zY~6 6g
G07
-!- M*5  &* "  V 5* 5  V4 2,.' +5*  <'0W 0'( "!%92*-! 04(&* #- &
<'0=
 -!+ 43*)(
0<!QN  !\* *-'!% " (*  !73"5" 4#-
 <5 
V4 "2.' 7+ )(<

(  &
!1" 0. " 27 7U*I0)
05'& "!- 2
 &  !I 0,',(!+017!+ "2   7[=
_* ,6#: *&  <"5 4#-
 ' " - "*" 9&607-!+0" <" 5(*0"!*N|2  4 1" 3*
0%!+ #Q*7+8<'5 
V8 *  [= kj)(<" %   V* ! * !- 0'J0.R%I0#-"
+  % *

 ,(!+0'1!+ "2 < *  7[='w05a *MgNg2  4*f2!+0,<'5 0J07.YR-*I0'T#-"


+
[ 
-  3
)('*'<'7 %   V* "!O=
kj1f 0W2"*&  07* <'05"8*&
&  08 7+!- 0!+'U 
0"2.'!% <"5; Z!I: &
8
!+' + <'0<5 T#-%J<, 
VU
<5 8&
"!+ &6+!QN % & 24  "!- " J<"`0.YR-* 04 '  U
M8<1''0"2%!QN 5!+" -  <" 6+ "*&  MJ0!- 7
 '&* @7
= "!% 5 !+ #-  ?' 07 4 2,.'  7U
 1072*%!ON W 0,;#% &6I0!O=_* )(! 0E( < <, 2.' %<" 2 *+!- 6
@" 0 5
%   V
(* "!+ &  & ' "!E 5!+*#-  ?' @74 "2,. "
 E= 240<" 0<"5  '2 * &* @74& " &* 5 5!+ #: *? @
"2.' +<5 5  V4&607240"*(!+0'<&6 0W 5 
 "* <' <<"`[' E
:  M 5(! 07( '<' '<
"2.' +< 2 *%!- 6<'"60".R% 0  * |=
&B +  7*"
c * 8#Q*7+}B + % 7  "*" (! 0?' 2 4#-7+8<, 
V2
M4<  +;+ " 8&6020"
B

0"|=eh&0
%!+ %!- 0,35 T#-"
+T 7
: *-U T#- 5B + % E*"  7

(!+0(*0"!+&* 0E* * 


0 < !+'&&* @7  .!-   0<5  V= "!+ , 0J0.YR-* 0'  2 * <0'J&0E
* 4#-"
+G + % E " '  :U*X &6I0!"<", 
V48&60E
 7+7=
_* W7 17!+ ,K{neC)2%!% <'0'T *Z"!I% &J<5 52 2 6#%"!% 3*,6+94 
<0
  2 <'0'( 0!\* 4#-
 G + - E*" ' 7 Q=X *'&6I0"!7<'5  V4 1" *( !+ ,I0'J<'0'
M(* !% I0<0' 0'T *Z!I% &
'=*G0"25( !% W_ W7 1!% ,Kn`C,&07 )7 1!% K{n8(* !- 8 "!\
< #+"!+*&* E=F 0,3*I0'<'0' 0T '&` 0"!%J<5  V8<5" 4#-
 G + - 7*"   "07
(* "!+ " " 0'U 5  V
0 , * 7f 7='F80-!% (  .!+ 'U 5 
 "  < <<5" 4#-
 
G + % 7   \ 04  !LN &607 <" 6+ *&   60.R%I0  * `M 4#-+
G + % 7   O=

_ 0J 1 


 .' 03"8<5!% #+"!%7 &* 5  6+ " 08&607 6%!Q*&6I0!%;M 0'2Z*I0<0'8<'
G + % 7   QU!+( &`-  2"
+E=

k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  }G+ % 7 


_ 080.YR-* 0'5G + % 7*" '  E280'<'" 7;#-*7
 8<5 
V2, M8<"  %; 7 "*<0)*
< !+'&&* @74<'"X '&` 0!"<"W  V8&07
 7 
 y gve~|y Yq Xy 6$g
G07
-!- M*5  &* "  V 5* 4#-"
+<" !+&
&* 0E "
*  <'0W 0'J* 1"' +;   0"!+(
07!
< #%'&6I0El

lightOn true
color (1, 1, 1)
direction (0, 0, -1)

 y gve~|y Yq Xy 6$|76 6|zY6~ 6 v`~|6|zY`xy gv`~|y 6


G07
-!- M*5  &* "  V 5* 5  V8<" !+&
&* 07* "6&074"6&0 0!M < !+'&&* @74(*'&* #- & <0'=
/0!"<" #%&6I05 '<05;%!- 0E
=
y gve~|y Yq Xy 6$Ie6 veq6G y 6{+ ?j`YE` 6|z`~{6 `+7ve~6$zY6x6y gve~$y 6
G07
-!- M*5  &* "  V 5* 5  V8<" !+&
&* 07* "6&074" <0EU "6&0" 0"!"M <" !+&
&* @7
(&* #: &
<'0=
k'2 "!- 0<)8Z 0'<'0'J<5 ,[  G + - 7*"  *
rYy x{v$Ey gv`~$y 6e ve~6|zYx6y gv`~$y 6
kj" '&&* 07 5 < !+'&
&  @74<'5 , 
V"=
rYy x{v$Ey gv`~$y 6e | Xq`s`| eq | eq6{
kj" '&&* 07 5 < !+'&
&  @74<'5 , 
V"=
k'2 "!- 0<,h (* &* <" <";<"5 ,[  }G + % "  *
G<29J<5 4B (* &* < <a!%<" <" J<", ,&   W_ 1a :U 0J0.YR-* 0
G !+&6% 0* _ 17a
% "*  1 "
 & 7(* '&* < <\l
X 1?A@CB6 FE  ?w%B DE
P[^@ E E
_ 05B + % E   J6@ 0)(* "!I% & ( 4 ( 0!+&* 07*J<" #: * ;M8( &* !"<"5
!+*#- *?' @7J<" 240'< 0<5 5  2 * '&  @"= !+ 5 !+ #:  ?' 0J< #-* ;M8(*&' "!QU
102%!QN ;#+ '&6I0! &0
%!% "!- 0,3"5 !%*#-  ?' 07 8 2,.' += VG !- !\

< !+'&&* @74<'5 4#-"


+<, 
V4&
"2.' "!%9"6072.!%' <0<5 0'J0".R% 0'T '   =
kF0 0
 8&
!+ '&`%!QN 6- &
2 *%!-  J< #-*
;M8(& ! , %   V* "( !% &
 & ' "!E 
!+*#- *?' 07*;< #:  ;M8'( '& "!O=
F $,W'f
c 5/7 % *"8&0"
%!+ !- 0<'W"5B + % *" "*Q=\'* 4#-%<5  V
B
02, < !+'&
&  0 &  M* ,+ * <' '<
,  f &
0 <  7 &* MJ% "*5*
 0&
  V* &* @7= 'WG+ + 7*"  *E 0%  ) 1* 5 0&
"  V '&  @U

0 0W' <" !+&
&  @7 =
_ 080.YR-* 0',/7 : *  (!+0*?' 2 4 5.0"2,.   'U6 " U80%!+ T#-  J<5  VJ
!+*#- '&6I0"!%J0W 7 =
cB20<" 0<"&* '&* @E8&* <7!+9*% &
,20'<" 5   "' '&* @4<5 T#:7 ,/7 - "*Q=
_* '&* '&  @8*7 &*
%!+ ,"  '&&* @E,w= C,<'5 (&* #- &
&* @78<' * * 7[=
_* W7 17!+ ,K{n`5   %!+ 5 ,!% '&* @EJ<"580.R%I0D/
: "*"&0* `#%"!% E= .*
"!$ 
3"5 0'T *'&6I0!%8<'5 
V, 0
0E( !% " " 0'=

_ 0J 1 


 .' 03"8<5!% #+"!%7 &* 5  6+ " 08&607 6%!Q*&6I0!%;M 0'2Z*I0' 0J<"
/7 - "*:U!+(*&6%  247+7=
k'2 "!- 0<,B07 %!-*&6 07!+J<"5 ,[  ) - 7
60".R%I0/7 - "*"( '&  #- &
5' 4#-%<"5  V4 *  <" 4"6( &* 0,3"
 !:!+ < 5 5 
V 1* " 27+7; 0<"  J< !+'&&* 0E 8<' <5 4#-
 <W 
V"=
* `y {$ey {||
G07
-!- M*5  &* "  V 5* 4#-"
+<W(''
 0<5  V  7 <'05 0J 1 
   " 07!+( 0!
< #%'&6I0El

lightOn true
color (1, 1, 1)

position (0, 0, 0)
attenuation (1, 0, 0)

* `y {$ey {||76 6|zY~6 6 e y {|zY


eXy |y 6`e*6y {|zY6qYv6`qY$y 6
G07
-!- M*5  &* "  V 5("I0,<, 
V"=0"!7<*#+&6I0W , 
V46+9 '&6%  7=
*`y {$ey {|$e v`q6G y 6{+ ?F66 6|zY~ 6 X*6y |zY
ey $y 66X*6y {gzY
q gv``q$y `
G07
-!- M*5  &* "  V 5(
I0,<, 
V"=
k'2 "!- 0<)4Z* 0'<'0'J<5 ,[  }/
- *
rYy x{v gv6eXq|y `eI6y YgzYq v6`q$y 6
kj" '&&* 07* , 0T   0"!%8<',   '&* @74 '&6% " 'J<'5 5 
VJM 0'J* %f 74*( !+9"2%!+0
(&* #: &
<'0E=_ 0';%!+; * " 0!+4(&* #- &
<'0460".R%I0/7
+*7( '&* #- &  0'
&0'*#- &* "
 8&
0 + "
+7U  * "!QUM4&* '<"!%9% &60EU!+'( '&`-  2+E=

qv6`Yq`~Yy 6;QkQkQkQYQkQkQkQYQlQkQkQYQlQkQkQYQlQlQkQYQkQkQkQkQkQkQYQlQkQkQYQlQkQkQYQlQkQkQYQlQkQkQYQlQkQkQYQlQkQkQYQlQkQkQkQkQkQYQkQlQkQYQkQlQkQYQkQ
~`gqv v y veq6l v6~YXqex`|YIy ~{ %x6y gq6~y 1q
<'07 <<"  "*&*  ,2'<" <' < <'5 4#-"
+<5 
V4 "X Z!I- &
3 9* "*<'0

0"2,.'!+' '<0\=
rYy x{v gv6eXq|y `e $ eq~6Ygq6{I$ `qY y Xveq6 $ `q tqex6gq|y ~
kj" '&&* 07* , 0T   0"!%8<',   '&* @74 '&6% " 'J<'5 5 
VJM 0'J* %f 74*( !+9"2%!+0
(&* #: &
<'0E= VG"!E '&* &* @E4 
 "!- 07!O=
rYy x{vI*ey Iy eI y $zYXey Iy 
kj" '&&* 07* , W( 0'* &  @8<, 5_' V=
rYy x{vI*ey Iy e | eq`s`$ XqX $ `q6{
kj" '&&* 07* , W( 0'* &  @8<, 5_' V=
k'2 "!- 0<,h (* &* <" <";<"5 ,[  )
%' 
G<29J<5 8& 7( '&* < <a!+'< < J<5 ,&* 
}'  :U 0'J0".R%I0"
- 
% "*" J 1 7
 8& "( &* < '<'=
X1?A@CB6%? ?jB F E ][\@ \ E
X1 ?A@CB
E 7 ?j B J E6 ][\@ \
E

G0240DG + % 7*"  *:U"


-  \( "!I% & ( 
0" 2"
+ ( 0!+&* 07*J<" #-  M8<
!+*#- *?' @78('& ' "!<*280'<" 0<",  '2  '&* @7"= !+ 5 !+*#- *?' 07*;<7 #:  ;M
(&*' "!OU 102*%!QN ;#% &6 0"!L= VG "!- 7
<0W 5 0& "  V '&* @7J<540".R%I0
/7 - "* &
2. !%9,"`
02.'!% <0<"5 0';07.R%* 0T ' * " 8"*  &
* 7=
G '%' *
G*: *"'* .*&* 
<)
- 7
Q=_* &*  ,B '- "*" 1"!+'1 < !+'&
&  @JM
&0*&

-!+ &* @E4 5 0( "!%92*-!+0J<"5(*0'* &  @JM8<'