/*
  This file belongs in

  <TheGHOUL/DemoFiles/>

  Hank J. van Leuvensteijn Jr. 2021
  lionstone@mail.com
*/

include<TheGHOUL/Config.scad>

// Generate some graph paper...
translate([0,0,-0.01])
GraphPaper(Major=1,Minor=0.1,Size=10,LineFactor=200,Color=[0.5,0.5,0.5],Alpha=0.3);

// Pick a good viewpoint.
$vpr=[0,0,0];
$vpt=[0.5,0.7,0]; // [1.4,0.6,0] for Domain=3
$vpd=4;

Domain=1;

/*
  Experiment with the parameters directly in this call. See the actual function AnimationFxTwoSines() for an explanation of the parameters. This is just a demo-file.
*/

/*
  UNcomment ONE of the lines immediately below.
*/
TS(); // TwoSines
//TRNGL(Freq=2); // Triangle
//FRAC(Freq=1); // Fraction
//SQR(Freq=1); // Square

// Two Sines parameters, play with these (uncomment TS() call above).
BASE=0;
SINA=[0.7,90,2];
SINB=[1,180,2];
module TS(Freq=1){
    for(I=[0:0.001:Domain])
    translate([I,AnFxTS([0,$AnimSegs,Domain*$AnimSegs],BASE,SINA,SINB,Freq,$t=I),0])
    sphere(r=0.01,$fn=10);
}

module TRNGL(Freq=1){
    for(I=[0:0.001:Domain])
    translate([I,AnFxTr([0,$AnimSegs,Domain*$AnimSegs],Freq,$t=I),0])
    sphere(r=0.01,$fn=10);
}

module FRAC(Freq=1){
    for(I=[0:0.001:Domain])
    translate([I,AnFxFr([0,$AnimSegs,Domain*$AnimSegs],Freq,$t=I),0])
    sphere(r=0.01,$fn=10);
}

module SQR(Freq=1){
    for(I=[0:0.001:Domain])
    translate([I,AnFxSq([0,$AnimSegs,Domain*$AnimSegs],Freq,$t=I),0])
    sphere(r=0.01,$fn=10);
}