// License: CC0
//
// To the extent possible under law, Clementine Computing LLC has waived
// all copyright and related or neighboring rights to this file.
//
// This work is published from: United States.
//

include <PopufareHousingCommon.scad>


module PopufareHousingFrontAnglePlate_resistive() {
  dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;

  w = POPUFARE_HOUSING_WIDTH;
  h = sqrt(2.0)*dh;

  bx = POPUFARE_BRACKET_CX;
  br = POPUFARE_BRACKET_D/2.0;
  de = POPUFARE_BRACKET_DE;
  des = POPUFARE_BRACKET_DE_SHORT;

  lip = _MATERIAL_THICKNESS;


  screen_w = POPUFARE_SCREEN_WIDTH_RESISTIVE;
  screen_h = POPUFARE_SCREEN_HEIGHT_RESISTIVE;
  screen_cx = 0;
  screen_cy = 0;
  screen_attach_dw = POPUFARE_INNER_PLATE_HOLE_WIDTH;
  screen_attach_dh = POPUFARE_INNER_PLATE_HOLE_HEIGHT;

  difference() {
    union() {
      square([w + 2*lip,h + 2*lip], center=true);
    };

    // attach to side plate brackets
    //
    translate([ -(w/2 - bx), -(h/2-des) ]) circle(br);
    translate([ -(w/2 - bx),  (h/2-des) ]) circle(br);
    translate([  (w/2 - bx), -(h/2-des) ]) circle(br);
    translate([  (w/2 - bx),  (h/2-des) ]) circle(br);

    // screen center
    //
    translate([screen_cx, screen_cy]) square([screen_w, screen_h], center=true);
    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);

  }

}



module PopufareHousingFrontAnglePlate_capacitive() {
  dh = POPUFARE_HOUSING_HEIGHT - POPUFARE_FRONT_HEIGHT;
  
  lip = _MATERIAL_THICKNESS;
  
  w = POPUFARE_HOUSING_WIDTH;
  h = sqrt(2.0)*dh ;

  bx = POPUFARE_BRACKET_CX;
  br = POPUFARE_BRACKET_D/2.0;
  de = POPUFARE_BRACKET_DE;
  des = POPUFARE_BRACKET_DE_SHORT;

  lip = _MATERIAL_THICKNESS;


  screen_w = POPUFARE_SCREEN_WIDTH_CAPACITIVE;
  screen_h = POPUFARE_SCREEN_HEIGHT_CAPACITIVE;
  screen_cx = 0;
  screen_cy = 0;
  screen_attach_dw = POPUFARE_INNER_PLATE_HOLE_WIDTH;
  screen_attach_dh = POPUFARE_INNER_PLATE_HOLE_HEIGHT;

  difference() {
    union() {
      square([w + 2*lip,h + 2*lip], center=true);
      };

    // attach to side plate brackets
    //
    translate([ -(w/2 - bx), -(h/2-des) ]) circle(br);
    translate([ -(w/2 - bx),  (h/2-des) ]) circle(br);
    translate([  (w/2 - bx), -(h/2-des) ]) circle(br);
    translate([  (w/2 - bx),  (h/2-des) ]) circle(br);

    // screen center
    //
    translate([screen_cx, screen_cy]) square([screen_w, screen_h], center=true);
    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([ screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2,-screen_attach_dh/2]) circle(_M3r);
    translate([screen_cx, screen_cy]) translate([-screen_attach_dw/2, screen_attach_dh/2]) circle(_M3r);

  }

}


module PopufareHousingFrontAnglePlate() {
  //PopufareHousingFrontAnglePlate_resistive();
  PopufareHousingFrontAnglePlate_capacitive();
}

//PopufareHousingFrontAnglePlate();
