//Ejemplo adaptado para una figura 3D con matrices
//Por: Mario H Tiburcio Z adaptado

#include "colors.inc"
#include "librerias.inc"

camera {
  location <6,6,-6>
  look_at <0,0,0>
}

light_source {<4,5,-6> color White}

// Definir la matriz de la figura
#declare puntos = array[8]{
  <2, 0, 1>, // Punto 1
  <0, 0, 1>,  // Punto 2
  <0, 1, 1>,  // Punto 3
  <1, 1, 1>,  // Punto 4
  <2, 0, 2>, // Punto 5
  <0, 0, 2>,  // Punto 6
  <0, 1, 2>,  // Punto 7
  <1, 1, 2>   // Punto 8
}

#declare figura=union{
  // Base frontal
  triangle{puntos[0], puntos[1], puntos[3] pigment {color Red}}
  triangle{puntos[1], puntos[2], puntos[3] pigment {color Red}}
  
  // Base trasera
  triangle{puntos[4], puntos[5], puntos[7] pigment {color Yellow}}
  triangle{puntos[5], puntos[6], puntos[7] pigment {color Yellow}}

  // Laterales
  triangle{puntos[0], puntos[1], puntos[4] pigment {color Blue}}
  triangle{puntos[1], puntos[5], puntos[4] pigment {color Blue}}

  triangle{puntos[1], puntos[2], puntos[5] pigment {color Green}}
  triangle{puntos[2], puntos[6], puntos[5] pigment {color Green}}

  triangle{puntos[2], puntos[3], puntos[6] pigment {color Cyan}}
  triangle{puntos[3], puntos[7], puntos[6] pigment {color Cyan}}

  triangle{puntos[3], puntos[0], puntos[7] pigment {color Magenta}}
  triangle{puntos[0], puntos[4], puntos[7] pigment {color Magenta}}
}

figura

object {
  figura
  matrix<-2,0,0,
         0,2,0,
         0,0,2,
         3,0,4
         >
}

plane  { y,0 pigment {checker Black White }}
ejes3D

