JSFiddle - React, Tailwind, and code Playground

by tedbeer

JavaScript

// OpenJSCad.org question
// https://plus.google.com/u/0/102032393240187661295/posts/bvBW5hhk8rR
// Wikimask
// Copyright 2013 - Fabrique d'Objets Libres
// Created by Stéphane Mor <[email protected]>
// Les objets créés avec cette application sont sous Licence Creative Commons (CC-BY-SA).

// Boucle principale du programme
function main(params)
{
  return([
    clip(params.diametre_interieur, params.diametre_exterieur, params.hauteur_interstice, params.ecart, 2, 1 ).translate([0,-30,0]),
    //adaptateur_tuyau(10,22).translate([30,20,0]),
    nez(params.largeur_nez,params.hauteur_nez,params.profondeur_nez,params.diametre_tuyau_nez,0.4),
    appui_frontal(params.largeur_nez + 10, params.hauteur_nez).translate([-60,-30,0]),
    attache_nez(params.largeur_nez, params.hauteur_nez, params.diametre_tuyau_nez, 0.8).translate([60,0,0]),
    raccord_tuyau(params.diametre_tuyau_nez,params.hauteur_nez + 5).translate([30,-30,0])

  ]);
}

// Paramètres modifiables par l'utilisateur
function getParameterDefinitions() {
  return [
    { name: 'diametre_interieur', caption: 'Diamètre intérieur:', type: 'float', default: 8 },
    { name: 'diametre_exterieur', caption: 'Diametre extérieur:', type: 'float', default: 10 },
    { name: 'hauteur_interstice', caption: 'Hauteur de l\'interstice:', type: 'float', default: 4 },
    { name: 'ecart', caption: 'Écart:', type: 'float', default: 1 },
    { name: 'largeur_nez', caption: 'Largeur nez:', type: 'float', default: 39 },
    { name: 'hauteur_nez', caption: 'Hauteur nez:', type: 'float', default: 23 },
    { name: 'profondeur_nez', caption: 'Profondeur nez:', type: 'float', default: 14 },
    { name: 'diametre_tuyau_nez', caption: 'Diamètre du tuyau d\'arrivée d\'air:', type: 'float', default: 10 },
  ];
}

// Partie nasale du masque; le masque proprement dit.
function nez(largeur, hauteur,profondeur,diametre,epaisseur){
  var rayon = largeur / 5;
  var g_cercle = circle({r: rayon + 2, center: true});
  var cercle = circle({r:...