/*
 *	H E X A C O N E   -   E S S A I
 *   nouveau projet du Thu Dec  5 11:37:05 AM UTC 2024
 */

#version 3.7;

#include  "globals.inc"

#debug "\n GLOBALS INCLUDED\n"

#include  "contexte.inc"
#include  "gadgets.inc"
#include  "hexacone.inc"
#include  "hexabenz.inc"
#include  "hexawood.inc"

// =======================================================
// #include  "dynamic.inc"
/* ======================================================= */

//  ------------------------------------------------------ ##
#declare Horloge = object
{
#local Texte = str(NormClock, 6, 4);
#debug concat("Texte horloge ", Texte, "\n\n")

text 	{
	ttf "datas/Rebel-Typographer.ttf" Texte 0.1, 0
	texture { T_WIP_alert }
	}
scale 3.00   
rotate -90*x
translate <-4.5,-0.21, 0> 
}

// =======================================================

#include  "trident.inc"

#debug " ACTION !!!\n"

//  ------------------------------------------------------ ##


//  ------------------------------------------------------ ##

#declare Tridents = object
{
#local RX = -11 + (80*sin(NormClock*9.81) + 3*sin(NormClock*23));
#local RZ =  96 - (54*Cos_010(NormClock));
union	{
	object { Trident_A ()	rotate <RX, 0, RZ>
				translate < -1.4, 3, 0> }
	object { Trident_A ()	rotate <0, clock, 0>
				translate <  1.4, 2, 0> }
	}
}

//  ------------------------------------------------------ ##

#declare Gyros = object
{
union	{
	#for (I, 0, 359, 60)
	  #declare E = 9;
	  #declare Dx = E * sin(radians(I));
	  #declare Dz = E * cos(radians(I));
	  object { GyroPhare () translate <Dx, 0, Dz> }
	  // #debug " Gyro !!!\n"
	#end
	}
}
//  ------------------------------------------------------ ##

	object { Gyros }

/*
	light_source {
		<-8, 7, 19>
		colour Gray60
		parallel
		point_at	0
		}
*/

#declare Selector = mod(int(clock/32), 6);
#debug concat("Selector = ", str(Selector, 6, 0), "\n")

#switch (Selector)
  #case (0)
	object { Cabane_Compteur scale 2 rotate y*clock }
	#debug "    Cabane+Compteur !!!\n"
  #break
  #case (1)
	object { QuadriPole }
	#debug "    Quadripole !!!\n"
  #break
  #case (2)
	object { Tridents }
	#debug "    Deux Tridents !!!\n"
  #break
  #case (3)
	object { Les_Bibelots translate y }
	#debug "    Bibelots !!!\n"
  #break
  #case (4)
	object { Les_Machins }
	#debug "    Machins !!!\n"
  #break
  #case (5)
	object { Horloge }
	#debug "    Horloge !!!\n"
  #break
#end     // switch selector


plane {
	y, 0
	texture { T_Planete_A scale 0.3333 }
	}

object { Repere  translate y*0.6 }
// object { RedBase_0 (T_Planete_B) }

// =======================================================

#local CamX = -2.7   + (1.8*Cos_010(NormClock));
#local CamY =  0.91  + (1.3*exp(NormClock));
#local CamZ = -5.777 + (0.8*Cos_01(NormClock));

#local K = 8.6;
#local CamX = CamX * K;
#local CamY = CamY * K * 0.5;
#local CamZ = CamZ * K;

camera	{
	location	<CamX, CamY, CamZ>
	look_at		<0, 1.4, 0>
	angle		20 - 3*Cos_01(NormClock)
	}