// Exercicio 5 de laboratorio - 07/11/2000
// Marilia Goulart Honorio - 971259

#include "colors.inc"

//background{ color rgb < 1, 1, 1 > }

//light_source {
//  < 30.00, 20.00, 20.00 >
//  color rgb < 1.00, 1.00, 1.00 >
//}

//camera {
//  location  <  30.00, 20.00, 20.00 >
//  right     <  0.00, 0.00, 0.00 >
//  up        <  0.00, 0.00, 0.90 >
//  sky       <  0.00, 0.00, 1.00 >
//  look_at   <  0.00, 0.00, 2.5 >
//}

  camera {
    location <45, 5, -35>
    look_at 0
  }
  background { color rgb <0.5,0.5,1> }  //to make the patch easier to see
  light_source { <300, 300, -700> White }
  plane { y, -12
    texture {
      pigment {
        checker
        color Green
        color Yellow
      }
    }
  }




#declare TeePeeTex =
  texture {
    pigment {
      color rgb <1, 0.65, 0.65,>
    }
    finish {
      ambient .2
      diffuse .6
    }
  }

#declare A1 = <7,0,5>;
#declare A2 = <7,7,10>;
#declare A3 = <7,13,10>;
#declare A4 = <7,20,5>;
#declare A5 = <2,0,5>;
#declare A6 = <2,7,10>;
#declare A7 = <2,13,10>;
#declare A8 = <2,20,5>;
#declare A9 = <-3,0,5>;
#declare A10 = <-3,7,10>;
#declare A11 = <-3,13,10>;
#declare A12 = <-3,20,5>;
#declare A13 = <-8,0,5>;
#declare A14 = <-8,7,10>;
#declare A15 = <-8,13,10>;
#declare A16 = <-8,20,5>;
#declare B1 = <7,0,0>;
#declare B2 = <7,12,0>;
#declare B3 = <7,15,6>;
#declare B4 = <7,20,5>;
#declare B5 = <2,0,0>;
#declare B6 = <2,12,0>;
#declare B7 = <2,15,6>;
#declare B8 = <2,20,5>;
#declare B9 = <-3,0,0>;
#declare B10 = <-3,12,0>;
#declare B11 = <-3,15,6>;
#declare B12 = <-3,20,5>;
#declare B13 = <-8,0,0>;
#declare B14 = <-8,12,0>;
#declare B15 = <-8,15,6>;
#declare B16 = <-8,20,5>;

#declare patchA =
  bicubic_patch{
    type 1 flatness 0.0100 u_steps 4 v_steps 4,
    A1, A2, A3, A4,
    A5, A6, A7, A8,
    A9, A10, A11, A12,
    A13, A14, A15, A16
    texture {TeePeeTex}
  }

#declare patchB =
  bicubic_patch{
    type 1 flatness 0.0100 u_steps 4 v_steps 4,
    B1, B2, B3, B4,
    B5, B6, B7, B8,
    B9, B10, B11, B12,
    B13, B14, B15, B16
    texture {TeePeeTex}
  }

// Aqui está a cena, finalmente:

object {patchA
        rotate<-90,0,0>
       }
object {patchA
        scale<1,-1,1>
        rotate<-90,0,0>
       }
object {patchB
        rotate<-90,0,0>
       }

object {patchB
        scale<1,-1,1>
        rotate<-90,0,0>
       }

// MARCANDO OS PONTOS DE CONTROLE

//sphere{A1, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A2, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A3, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A4, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A5, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A6, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A7, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A8, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A9, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A10, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A11, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A12, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A13, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A14, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A15, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{A16, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B1, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B2, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B3, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B4, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B5, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B6, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B7, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B8, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B9, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B10, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B11, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B12, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B13, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B14, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B15, 0.5 texture{pigment{color rgb<1,0,0>}}}
//sphere{B16, 0.5 texture{pigment{color rgb<1,0,0>}}}