Archivos de esta coleccin.
Necesarios para ejecucin:
JVPA.inc  	: archivo principal
Extras para visualizacin de manual html, no necesita conservarlos
JVPA.html	: instrucciones en html
JVPA_Thumbnail.jpg	
			: dibujo del objeto en pequeo
JVPA.jpg		: resultado con mejor resolucion
JVPA_logoPOVht.jpg	: logo de POV-Ray
JVPA_fp32ht.jpg		: logo de FreePascal
JVPA_freedosht.jpg	: logo de FreeDOS
JVPA_faltaht.jpg	: imagen de LibreN3D
JVPA_backht.jpg		: fondo de texto html
JVPA_cc-LGPL-a.png	: logo de GNU LGPG
Extras adicionales
JVPA.pov		: archivo de prueba
JVPA_readme.txt		: este documento

Lo que sigue, puede leerse con mayor facilidad con JVPA_html, y su despliegue preferido...
Esta copia es para usuarios que prefieran las instrucciones en formato TXT, o si en el futuro
el lenguaje html quede descontinuado.

JVPA
Instrucciones para "JVPA.inc" v1.0 

Donacin de Rafael Angel Campos Vargas, en el ao 2015, a la Biblioteca de 
objetos de POV-Ray.  Este proyecto se encuentra actualmente suscrito a la 
patente LGPL;  para libre uso comercial y no comercial del software. 
   
  The primary purpose of this collection is to make items publicly available 
  under a common license that permits use, modification and re-distribution. To 
  support this contributions are donated to the collection with consent for 
  their use under the terms of the Creative Commons - Lesser General Purpose 
  License (CC-GNU LGPL). 

    Chris Bartlett 2007

La versin actual v1.0 de "JVPA.inc" (JaulaVespertinaPericoAve) dibuja una jaula 
para aves.  Modelos similares son utilizados en Costa Rica para la exhibicin de 
estos animales.  Ofrece una macro que permite cambiar las caractersticas 
principales y texturas.  Es compatible con PovRay 3.1. 
Indice de pgina: 
  Instalacin de Archivos

  Instrucciones bsicas

  Caractersticas del objeto

  Modificadores

  Notas y Advertencias

  Sugerencias de modificacin

  Sobre LibreN3D




Instalacin de Archivos
El procedimiento siguiente es completamente optativo, corresponde simplemente al 
estndard de la Biblioteca de objetos POV-Ray. 
  Cree el subdirectorio "ObjectCollections".  Se sugiere un subdirectorio del 
  folder POV-Ray, creado por el instalador en algunas versiones en la seccin de 
  documentos o bien en la de cdigo. 
  Copie el archivo "JVPA.inc" en dicho subdirectorio;  nicamente ste es 
  necesario.  En cuanto a la documentacin y dems puede colocarla si desea en 
  el mismo subdirectorio, el estndar ha sido diseado para evitar problemas de 
  compatibilidad. 
  Actualice los archivos buscados por POV-Ray, en algn archivo ini pertinente.  
  Por ejemplo "POVRay.ini";  agregue el comando 
  Library_Path="C:\FDOS\POVRAY31\ObjectCollections"; o el que corresponda a su 
  sistema operativo.  POV-Ray ofrece muchas formas de realizar esto.  Si no sabe 
  cmo, probablemente convenga leer el manual de referencia en la seccin 
  "Command-line options".   Cada sistema operativo presenta sus propias 
  variantes. 
Nota:  El archivo de prueba "JVPA.pov" puede ejecutarse sin ningn proceso de 
instalacin.  Unicamente debera estar ubicado en el mismo folder que 
"JVPA.inc". 



Instrucciones bsicas
       
      Jaula 
Muy fcil de usar, tan simple como incluir el archivo y ubicar el objeto.  El 
siguiente ejemplo ilustra el procedimiento bsico. , 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "JVPA.inc"
    
    object      {
      JVPA_Jaula( 0 ) 
      translate        <-1.875,1.425,-4.5>
    }
La macro fundamental tiene slo un parmetro. 
    #macro JVPA_Jaula( AnguloColumpio )        
AnguloColumpio : 
  Angulo para girar el columpio en una y otra direccin. 
La siguiente variante de la macro fundamental, permite abrir las ventanas. 
    #macro JVPA_JaulaAbierta( AnguloColumpio, BanderaBandeja,
                         PuertaIzquierda, PuertaCentral, PuertaDerecha )
AnguloColumpio : 
  Angulo para girar el columpio en una u otra direccin. 
  BanderaBandeja : 
  Valor "on" dibuja la bandeja inferior, valor "off" no la dibuja. 
  PuertaIzquierda : 
  Fraccin para abrir la puertecilla izquierda.  Utilice 0.0 para cerrado y 1.0 
  para totalmente abierto. 
  PuertaCentral : 
  Fraccin para abrir la puertecilla central.  Utilice 0.0 para cerrado y 1.0 
  para totalmente abierto. 
  PuertaDerecha : 
  Fraccin para abrir la puertecilla derecha.  Utilice 0.0 para cerrado y 1.0 
  para totalmente abierto. 
La siguiente macro dibuja el objeto con mayor control sobre las caractersticas. 

    #macro JVPA_JaulaVespertinaPericoAve( AnguloColumpio, 
        BanderaBandeja, AbrirPuertas, Frente, Profundidad,
        AltoBase, AltoPiso, PaseBandeja, LateralTechoPlano,
        ExcesoTecho, AltoColumpio,
        TotalAlambresFrente, TotalAlambresProfundidad, ArregloVentanas,
        ArregloPalitos, GruesoAlambrito, GruesoAlambre, CurvaDecorativa,
        ArregloTexturas )
AnguloColumpio : 
  Angulo para girar el columpio en una u otra direccin. 
  BanderaBandeja : 
  Valor "on" dibuja la bandeja inferior, valor "off" no la dibuja. 
  AbrirPuertas : 
  Variable array de reales, dimensin igual al total de ventanas.  Son 
  fracciones para abrir las ventanas definidas.  Utilice 0.0 para cerrado y 1.0 
  para totalmente abierto. Default es { 0.0, 0.0, 0.0 }, equivalente a la 
  variable JVPA_TresVentanasCerradas. 
  Frente : 
  Referencia para el frente X de la jaula.  Default es 316*L. 
  Profundidad : 
  Referencia para la profundidad Z de la jaula.  Default es 172*L. 
  AltoBase : 
  Referencia para el alto Y de la jaula.  Default es 197*L. 
  AltoPiso : 
  Alto de ventana.  Default es 75*L. 
  PaseBandeja : 
  Alto de abertura para la bandeja.  Default es 11*L. 
  LateralTechoPlano : 
  Seccin plana lateral del techo.  Considerar que aplica a derecha e izquierda. 
   Default es 86*L. 
  ExcesoTecho : 
  Referencia para las salientes en exceso del techo.  Default es 32*L. 
  AltoColumpio : 
  Alto del columpio.  Default es 110*L. 
  TotalAlambresFrente : 
  Total de alambres al frente.  Default es 36. 
  TotalAlambresProfundidad : 
  Total de alambres a lo profundo.  Default es 20. 
  ArregloVentanas : 
  Arreglo de vectores 3D, que describen las ventas.  < Piso, AlambreIzquierdo, 
  AlambreDerecho >.  Default es JVPA_ArregloVentanas.  Piso A partir de 1, 
        que representa el primer nivel accesible para ventanas luego de una 
        separacin razonable de la bandeja.  En muchas jaulas ser el nico 
        valor posible. 
        AlambreIzquierdo Nmero de alambre a la izquierda para soportar la 
        ventana (s se dibuja). 
        AlambreDerecho Nmero de alambre a la derecha para soportar la ventana 
        (s se dibuja).  Importante que AlambreDerecho > AlambreIzquierdo. 

  ArregloPalitos : 
  Arreglo de vectores 2D, para palitos de madera sin contar el columpio.  < 
  Piso, AlambreIzquierdo >.  Default es JVPA_ArregloPalitos.  Piso A 
        partir de 1, que representa el primer nivel accesible para ventanas 
        luego de una separacin razonable de la bandeja.  En muchas jaulas ser 
        el nico valor posible. 
        AlambreIzquierdo Nmero de alambre a la izquierda para soportar el 
        palito. 

  GruesoAlambrito : 
  Grueso principal de alambre de la jaula.  Default es 1.5*L. 
  GruesoAlambre : 
  Grueso de alambre para dar firmeza.  Default es 1.8*L. 
  CurvaDecorativa : 
  Radio de ciertas curvas de la jaula.  Default es 7L. 
  ArregloTexturas : 
  Arreglo de cinco texturas para decorar la jaula { TexturaJaula, TexturaTecho, 
  TexturaVentana, TexturaMadera, TexturaBandeja }. Valor por defecto 
  JVPA_DefaultArregloTexturas. TexturaJaula Textura principal de la jaula. 
         Default es JVPA_TexturaJaula. 
        TexturaTecho Textura del techo.  Default es JVPA_TexturaTecho. 
        TexturaVentana Textura de las ventanas.  Default es JVPA_TexturaVentana. 

        TexturaMadera Textura de los palitos de madera.  Default es 
        JVPA_TexturaMadera. 
        TexturaBandeja Textura de la bandeja.  Default es JVPA_TexturaBandeja. 

Si no dibuja la bandeja, puede ubicarla con la siguiente macro. 
    #macro JVPA_BandejaJaula( FrenteJaula, ProfundidadJaula, PaseBandeja,
                GruesoAlambre, TexturaBandeja )
FrenteJaula : 
  Referencia para el frente X de la jaula.  Default es 316*L. 
  ProfundidadJaula : 
  Referencia para la profundidad Z de la jaula.  Default es 172*L. 
  PaseBandeja : 
  Alto de abertura para la bandeja.  Default es 11*L. 
  GruesoAlambre : 
  Grueso de alambre para dar firmeza.  Default es 1.8*L. 
  TexturaBandeja : 
  Textura de la bandeja.  Default es JVPA_TexturaBandeja. 
En el siguiente ejemplo dibujamos la jaula con la puerta central abierta: 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "JVPA.inc"
    
    object      {
      JVPA_JaulaAbierta( 0, on, 0, 1.0, 0 ) 
      translate        <-1.875,1.425,-4.5>
    }
En el siguiente ejemplo ilustramos el uso de la macro detallada para dibujar el 
mismo objeto original. 
Textura principal de la jaula. 
Default es JVPA_TexturaJaula.
En el siguiente ejemplo repetimos el mismo dibujo anterior, pero la bandeja se 
dibuja con una macro independiente. 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "JVPA.inc"
    
    union        {    
      object                    {
        JVPA_JaulaVespertinaPericoAve( o, off, JVPA_TresVentanasCerradas, 
           0.316, 0.172, 0.197, 0.075, 0.011, 0.086, 0.032, 0.110, 36, 20,  
           JVPA_ArregloVentanas, JVPA_ArregloPalitos, 0.0015, 0.0018, 0.007,   
           JVPA_DefaultArregloTexturas )   
      }
      object                    {
        JVPA_BandejaJaula( 0.316, 0.172, 0.011, 0.018, JVPA_TexturaBandeja )
        translate          JVPA_PosicionBandeja
      }
      translate        <-1.875,1.425,-4.5>
    }



Caractersticas del objeto
Mis dibujos estn en unidades L (Lisa).  1 L equivale a 0.055063 pulgadas 
definido como 0.001 para POVRAY.  El objeto tiene las siguientes 
caractersticas: 
    Alto                            = 275*L
    Frente en X         	    = 380*L 
    Profundidad en Z                = -93*L..90*L  
La jaula descansa semicentrada sobre el plano XZ.  Frente hacia Z-, gravedad Y-. 
 Cuando hablamos de derecha de jaula, nos referimos a la derecha de un 
observador desde Z- hacia el origen. 
Se generan las siguientes declaraciones que no deberan modificarse.  Para su 
correcta modificacin consultar la seccin Modificadores. 
  JVPA_ArregloVentanas 
  Sirve como parmetro ArregloVentanas en la macro detallada.  Incluye 
  descripciones para las ventanas default. 
  JVPA_ArregloPalitos 
  Sirve como parmetro ArregloPalitos en la macro detallada.  Incluye 
  descripciones para los palitos default. 
  JVPA_TresVentanasCerradas 
  Sirve como parmetro AbrirPuertas en la macro detallada.  Representa tres 
  ventanas cerradas como en el objeto default. 
  JVPA_PosicionBandeja 
  Se genera al llamar a las macros que generan la jaula.  Puede servir para 
  ubicar la bandeja mediante un translate apropiado, cuando asigne "off" al 
  parmetro BanderaBandeja. 
  JVPA_DefaultArregloTexturas 
  Sirve como parmetro ArregloTexturas en la macro detallada. Su valor es { 
  JVPA_TexturaJaula, JVPA_TexturaTecho, JVPA_TexturaVentana, JVPA_TexturaMadera, 
  JVPA_TexturaBandeja }. 
  JVPA_DefaultTexturaJaula 
  Textura principal de la jaula. 
  JVPA_DefaultTexturaTecho 
  Textura del techo. 
  JVPA_DefaultTexturaVentana 
  Textura de las ventanas. 
  JVPA_DefaultTexturaMadera 
  Textura de los palitos de madera. 
  JVPA_DefaultTexturaBandeja 
  Textura de la bandeja. 



Modificadores
La siguiente es la lista de los modificadores permitidos en la unidad. 
    #declare JVPA_TexturaJaula			= texture { ... }
Textura principal de la jaula. 
    #declare JVPA_TexturaTecho			= texture { ... }
Textura del techo. 
    #declare JVPA_TexturaVentana		= texture { ... }
Textura de las ventanas. 
    #declare JVPA_TexturaMadera			= texture { ... }
Textura de los palitos de madera. 
    #declare JVPA_TexturaBandeja		= texture { ... }
Textura de la bandeja. 
    #declare JVPA_POV3_1			= off;
Para activar modo de compatibilidad con POVRay 3.1.  En algunas versiones se 
activar automticamente.  En esta versin no cumple ninguna funcin. 
A manera de ejemplo del uso de los modificadores: 
    #include "stdinc.inc"
    #include "stdcam.inc"
    #include "JVPA.inc"  
    #include "textures.inc"
    
    #declare JVPA_TexturaJaula  = 
      texture                   { 
        average
        texture_map             {  
          [ 0.5 JVPA_DefaultTexturaJaula ]
          [ 0.5 Rust                     ]
        }
      } 
    
    #declare JVPA_TexturaTecho          = Cork
    
    #declare JVPA_TexturaVentana        = Brass_Valley
    
    #declare JVPA_TexturaMadera         = Aluminum
    
    #declare JVPA_TexturaBandeja        = Yellow_Pine
    
    object                      {
      JVPA_Jaula( 0 )    
      translate        <-1.875,1.425,-4.5>
    }



Notas y Advertencias
Las ventanas laterales de la jaula no pueden abrirse en su totalidad por un 
error de diseo.  Es de esperar frecuentes problemas similares al modificar la 
jaula. 
Cuide que el parmetro AltoPiso sea lo suficientemente pequeo para permitir al 
menos un nivel de ventanas. 
Debe variar en forma consistente los parmetros, pues la macro tiene poco 
control de errores. 



Sugerencias de modificacin
  Resultara muy til incluir un pajarito en la jaula. 
  Utilizar variables aleatorias para aumentar el realismo mediante tcnicas 
  fractales y similares. 
  Muchas variables, pero el modelo casi permanece inalterado.  Planear una macro 
  que permita modificaciones ms profundas de estructura. 



Sobre LibreN3D
 En la actualidad dedico casi unas dos horas todos los das, para desarrollar el 
programa de animacin LibreN3D con el compilador FreePascal para FreeDOS.  El 
objetivo era en un origen, realizar animaciones de "baja" calidad, con progreso 
lento y paulatino. Desconoca en ese entonces del programa POV-Ray.  Creo que 
con ayuda de dicho proyecto, podra lograr mucho mejores resultados desde un 
principio.  Confo que para el 2020 pueda lograr animaciones completas de 
aceptable calidad.   En la actualidad, intento agregarle caractersticas 
elsticas a los objetos.  He tenido numerosos retrasos, as que todava no 
funciona.  Lo siento...(21/octubre/2014), pero me siento muy seguro de que 
pronto lo lograr.  De momento, no tiene interface con el usuario, pero se 
encuentra en desarrollo como intrprete de rengln al estilo DOS. 
Me sera de muchsima ayuda, que el grupo POV-Ray siguiera desarrollando la 
versin para DOS.   Los siguientes son enlaces que podran ser de utilidad para 
el interesado en los proyectos FreePascal y FreeDOS.   Lamentablemente en la 
actualidad son altamente inestables, debido probablemente a dificultades con la 
adaptacin al modo de 64 bits. 
      Descarga sistema operativo FreeDOS 

      Descarga compilador FreePascal 



Dedicado a Jess y Mara.
Sugerencias a :
RofoelCompos@hotmail.com
Apdo. 964-1250. Escaz, San Jos, Costa Rica
http://rofoelcompos.hi5.com
Ultima modificacin del documento: 01/03/2015 15:19:56
