Logo POVRay...
Instrucciones para "EMBA.inc" v1.0

Donación de Rafael Angel Campos Vargas, en julio del 2011, a la Biblioteca de objetos de POV-Ray.  Este proyecto se encuentra actualmente inscrito con la patente LGPL;  para libre uso comercial y no comercial del software.

CC-GNU LGPL
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
Para lograr compatibilidad con POVRay 3.1. se transcriben las macros EMBA_Reorient_Trans de John VanSickle y EMBA_Axis_Rotate_Trans de Rune S. Johansen en forma casi idénticas a sus versiones originales en "transforms.inc".  La macro EMBA_VPerp_To_Vector de Tor Olav Kristensen se tomó de "math.inc", llamada allí VPerp_To_Vector también por la misma causa de conseguir compatibilidad.

El dibujo de la cadena metálica, talvez la estructura más compleja del dibujo.  Fue gracias a archivos originales de Christophe Bouffartigue y Chris Colefax.  El objeto molde de cadena "link_object" fue transcrito con pocas modificaciones del archivo "fireplug.inc" tomado de la Biblioteca de POVRAY administrada por Micha Riser.  Su autor es Christophe Bouffartigue con fecha 3 Julio 2000 (email: christophe.bouffartigue@libertysurf.fr).

Para el dibujo de la cadena de la escalera es necesario el archivo "link.inc", que probablemente se incluya en este paquete de distribución de "EMBA.inc". Su autor es Chris Colefax, 20 April 1998.

Puede que su distribución no contenga el archivo "link.inc".  El archivo "EMBA.inc" podrá ejecutarse de todas maneras, pero con alguna pérdida de calidad.  El archivo "link.inc" de Chris Colefax puede conseguirse en la siguiente dirección electrónica;  encontrará además valiosos archivos include, sumamente útiles para el programador en POVRay.
Chris Colefax...
www.reocities.com/SiliconValley/Lakes/1434/index.html#IncludeFiles
www.reocities.com/SiliconValley/Lakes/1434/otherincludes.html


La versión actual v1.0 de "EMBA.inc" crea una escalera de madera para uso doméstico.  Con la posibilidad de cerrar sus patas, y cambios ligeros en sus características principales.  El movimiento de la cadena asume gravedad habia "abajo";  pero puede eliminarse fácilmente del dibujo, en caso de dificultades por esta razón.

Indice de página:

  1. Instalación de Archivos
  2. Instrucciones básicas
  3. Características del objeto
  4. Modificadores
  5. Notas y Advertencias
  6. Sugerencias de modificación
  7. Sobre LibreN3D

Instalación de Archivos

El procedimiento siguiente es completamente optativo, corresponde simplemente al estándard de la Biblioteca de objetos POV-Ray.
  1. Cree el subdirectorio "ObjectCollections".  Se sugiere un subdirectorio del folder POV-Ray, creado por el instalador en algunas versiones en la sección de documentos o bien en la de código.
  2. Copie el archivo "EMBA.inc", "EMBA_Aux.inc" y "link.inc" en dicho subdirectorio;  únicamente éstos tres son necesarios.  Puede que su distribución no contenga el archivo "link.inc", el dibujo se podrá ejecutar de todas formas.  En cuanto a la documentación y demás puede colocarla si desea en el mismo subdirectorio, el estándar ha sido diseñado para evitar problemas de compatibilidad.
  3. Actualice los archivos buscados por POV-Ray, en algún 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 cómo, probablemente convenga leer el manual de referencia en la sección "Command-line options".   Cada sistema operativo presenta sus propias variantes.
  4. El archivo "EMBA.pov" es un dibujo demostrativo.  Para dibujar la cadena requiere escribir la instrucción #declare EMBA_Link = on;  antes de la orden #include "EMBA.inc".  Ello solo funcionará si posee al archivo "link.inc" de Chris Colefax.
Nota:  El archivo de prueba "EMBA.pov" puede ejecutarse sin ningún proceso de instalación.  Unicamente debería estar ubicado en el mismo folder que "EMBA.inc", "EMBA_Aux.inc" y "link.inc".


Instrucciones básicas

Escalera
Muy fácil de usar, tan simple como incluir el archivo y ubicar el objeto.  Se define una versión del objeto en posición basal, mediante macro default.  O bien se permite simular el movimiento, mediante una macro ligeramente más compleja.

El siguiente ejemplo recurre a la macro default, colocando a la escalera en posición base.

    #include "stdinc.inc"
    #include "stdcam.inc"
    // #declare EMBA_Link	        = on;	
    #include "EMBA.inc"
    
    object      {
      EMBA_Escalera()   
      translate         < -1.375, 0.625, -2.5 >  
    }
La macro principal recibe seis parámetros.
    #macro EMBA_EscaleraMaderaBajaAltura
          ( FraccionGiro, NumeroEscalones, FraccionGrada,
                TexturaMadera, TexturaMaderaBarata, TexturaMetalica )
FraccionGiro :
Indica el grado de apertura de la escalera enter 0 y 1.  Un valor de 0 indica que la escalera está cerrada perpendicularmente.
NumeroEscalones :
Cambia el total de escalones de la escalera, sin contar la base superior.
FraccionGrada :
Valor default es 1.0.  Permite cambiar el ancho de la madera de los escalones.  Puede ser útil si se quiere poner un elevado número de escalones.
TexturaMadera :
Textura principal que se aplica a la escalera.
TexturaMaderaBarata :
Textura a aplicar en las barras cruzadas que soportan las patas móviles.
TexturaMetalica :
Textura a aplicar en al escalera y sujetadores metálicos de la escalera.

La escalera se cierra verticalmente.  Tomar en cuenta que existen dos puntos de giro.  Uno de ellos se localiza en el tornillo metálico superior, el otro se encuentra en la parte delantera de la pata frontal.

Un ejemplo sencillo para utilizar la macro sería el siguiente:

    #include "stdinc.inc"
    #include "stdcam.inc"
    // #declare EMBA_Link	        = on;	
    #include "EMBA.inc"
    
    object      {
      EMBA_EscaleraMaderaBajaAltura( 0.0, 9, 0.3,
        EMBA_DefaultTexturaMadera,
        EMBA_DefaultTexturaMaderaBarata,
        EMBA_DefaultTexturaMetalica )   
      translate         < -1.375, 0.625, -2.5 >  
    }

Características del objeto

Mis dibujos están en unidades L (Lisa).  1 L equivale a 0.055063 pulgadas definido como 0.001 para POVRAY.  La escalera default tienen las siguientes características:
    Altura Escalera          = 682*L
    Ancho Escalera           = 264*L
        sin contar las cadenas de grosor 7*L cada una
    Profundidad Escalera     = +296*L ( frente x+ )
                               -234*L aprox    x-
    Plataforma Superior      = 144*L centrada en x
Se coloca con la base parcialmente centrada en el origen.  La pata delantera hacia x+, y las traseras hacia x-.  La base superior es atravezada en su centro por el eje y+.

Se definen las siguientes variables útiles, que no deberían modificarse.  Para su correcta utilización consultar la sección Modificadores.

EMBA_Escalones = array [ TotalEscalones+1 ]
Se genera automáticamente con cada llamado a la macro.  Indica como vector 3D el centro de escalón, numerado de abajo hacia arriba.  EMBA_Escalones[ 0 ] hace referencia a la base superior de la escalera.
EMBA_TexturaMadera
Define una textura fundamental para la escalera.
EMBA_TexturaMaderaBarata
Define una textura a aplicar en los soportes cruzados de las patas traseras.
EMBA_TexturaMetalica
Define una textura a aplicar en la cadena y otras partes metálicas.

El siguiente ejemplo utiliza el arreglo de escalones.

    #include "stdinc.inc"
    #include "stdcam.inc"
    // #declare EMBA_Link	        = on;	
    #include "EMBA.inc"
          
    union       {      
      object            {
        EMBA_Escalera()
      } 
      #local C          = 0;
      #while ( C < 4 )
        sphere          { 
          EMBA_Escalones[ C ]+0.03*y, 
          0.03 
          pigment { Blue } 
        }     
        #local C        = C+1;
      #end
      rotate            90*y 
      translate         < -1.375, 0.625, -2.5 >        
    }

Modificadores

La siguiente es la lista de los modificadores permitidos en la unidad (cuando se indica, son valores default).

    #declare EMBA_Link					= off;
Si se activa con "on" dibuja la cadena.  Debería declararse antes del #include "EMBA.inc".  Se asigna "off" por defecto, previendo que el usuario no disponga del archivo "link.inc".

    #declare EMBA_DefaultTexturaMadera			= texture {  
      EMBA_TexturaMadera
    }
Define la textura default a aplicar en la escalera.

    #declare EMBA_DefaultTexturaMaderaBarata		= texture {  
      EMBA_TexturaMaderaBarata
    }
Define la textura default a aplicar en los soportes cruzados, de las patas traseras.

    #declare EMBA_DefaultTexturaMetalica		= texture {  
      EMBA_TexturaMetalica
    }
Define la textura default a aplicar en la cadena, y otras estructura metálicas.

    #declare EMBA_POV3_1				= off;
Si se activa con "on" produce simplificaciones que permiten su ejecución en la version POVRay 3.1.  En algunas versiones de POVRay se activa automáticamente.

A manera de ejemplo del uso de los modificadores:

    #include "stdinc.inc"
    #include "stdcam.inc"
    #declare EMBA_Link	        = on;	
    #include "EMBA.inc" 
    #include "textures.inc"
    #include "metals.inc"
          
    #declare EMBA_DefaultTexturaMetalica  	= texture       {
      average
      texture_map       {
        [ 0.2 Rust                 ]
        [ 0.8 EMBA_TexturaMetalica ]
      }     
    }
    #declare EMBA_DefaultTexturaMadera          = texture       {
      average
      texture_map       {
        [ 0.2 Rust        ]
        [ 0.8 T_Brass_5E  ]
      }     
    }
    #declare EMBA_DefaultTexturaMaderaBarata    = texture       {
      average
      texture_map       {
        [ 0.3 Rust        ]
        [ 0.7 T_Brass_5E  ]
      }     
    }
    
    object            {
      EMBA_Escalera()
      translate         < -1.375, 0.625, -2.5 >        
    } 

Notas y Advertencias

La cadena posee dirección de gravedad hacia las patas.  Esto podría resultar desagradable, si se sostiene la escalera horizontalmente.

El arreglo EMBA_Escalones refleja el cierre de la escalera.  Sin embargo, no se vería afectado por cualquier operación matricial posterior.


Sugerencias de modificación


Sobre LibreN3D

Algo hace falta En la actualidad dedico casi unas dos horas todos los días, para desarrollar el programa de animación LibreN3D con el compilador FreePascal para FreeDOS.  El objetivo era en un origen, realizar animaciones de "baja" calidad, con progreso lento y paulatino. Desconocía en ese entonces del programa POV-Ray.  Creo que con ayuda de dicho proyecto, podría lograr mucho mejores resultados desde un principio.  Confío que para el 2020 pueda lograr animaciones completas de aceptable calidad.   En la actualidad, intento agregarle características elásticas a los objetos.  He tenido numerosos retrasos, así que todavía no funciona.  Lo siento...(5/julio/2011), pero me siento muy seguro de que pronto lo lograré.  De momento, no tiene interface con el usuario, pero se encuentra en desarrollo como intérprete de renglón al estilo DOS.

Me sería de muchísima ayuda, que el grupo POV-Ray siguiera desarrollando la versión para DOS.   Los siguientes son enlaces que podrían 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 adaptación al modo de 64 bits.
Logo FreeDOS...
Descarga sistema operativo FreeDOS
Logo FreePascal...
Descarga compilador FreePascal