Advertisement
itblanco

continousModifyMesh

Aug 21st, 2020
1,319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.33 KB | None | 0 0
  1. import wblut.core.*;
  2. import wblut.geom.*;
  3. import wblut.hemesh.*;
  4. import wblut.math.*;
  5. import wblut.nurbs.*;
  6. import wblut.processing.*;
  7. import peasy.*;
  8. import controlP5.*;
  9.  
  10. WB_Render render;
  11. WB_SelectRender3D selectRender;
  12. HE_Mesh mesh, copymesh;
  13. HE_MeshCollection meshColl;
  14. PeasyCam cam;
  15. ControlP5 cp5;
  16.  
  17. float extrudeAmount = 0.0;
  18. float insetAmount = 0.0;
  19.  
  20. void setup() {
  21.   size(400, 400, P3D);
  22.   cam = new PeasyCam(this, 500);
  23.   cam.rotateY(PI/4);
  24.   cam.rotateX(PI/4);
  25.  
  26.   mesh = null;
  27.   copymesh = null;
  28.   render = new WB_Render(this);
  29.   selectRender = new WB_SelectRender3D(this);
  30.   meshColl = new HE_MeshCollection();
  31.  
  32.   HEC_Creator creator = new HEC_Cube().setEdge(100);
  33.   HE_Mesh m = new HE_Mesh(creator);
  34.  
  35.   for (float x = 0; x < 150*10; x+=150) {
  36.     for (float y = 0; y < 150*10; y+=150) {
  37.       HE_Mesh a = m.moveTo(new WB_Point(x, 0, y));
  38.       meshColl.add(a);
  39.     }
  40.   }
  41.  
  42.   float posX = 10;
  43.   float posY = 10;
  44.   int buttonSizeX = 80;
  45.   int buttonSizeY = 15;
  46.   float buttonGap = 3;
  47.   cp5 = new ControlP5(this);
  48.   cp5.setAutoDraw(false);
  49.   cp5.addSlider("extrudeAmount")
  50.     .setSize(buttonSizeX, buttonSizeY)
  51.     .setPosition(posX+buttonGap*0+buttonSizeX*0, posY+buttonGap*0+buttonSizeY*0)
  52.     .setRange(-100, 100);
  53.   cp5.addSlider("insetAmount")
  54.     .setSize(buttonSizeX, buttonSizeY)
  55.     .setPosition(posX+buttonGap*0+buttonSizeX*0, posY+buttonGap*1+buttonSizeY*1)
  56.     .setRange(0, 1);
  57. }
  58.  
  59. void draw() {
  60.   if (cp5.isMouseOver()) cam.setActive(false);
  61.   else cam.setActive(true);
  62.   //modifyMesh();
  63.   background(30);
  64.   fill(255);
  65.   noStroke();
  66.   render.drawFaces(meshColl);
  67.   stroke(0);
  68.   render.drawEdges(meshColl);
  69.  
  70.   fill(255,0,0);
  71.   noStroke();
  72.   render.drawFaces(mesh);
  73.  
  74.   cam.beginHUD();
  75.   cp5.draw();
  76.   cam.endHUD();
  77. }
  78.  
  79. void modifyMesh() {
  80.   //HEM_Modifier modifier = new HEM_CenterSplit().setChamfer(insetAmount);
  81.   copymesh = mesh.copy();
  82.   //copymesh.modify(modifier);
  83.   HEM_Modifier modifier = new HEM_Extrude()
  84.     .setDistance(extrudeAmount)
  85.     .setChamfer(insetAmount)
  86.     .setHardEdgeChamfer(100);
  87.   copymesh.modify(modifier);
  88. }
  89.  
  90. void mouseMoved() {
  91.   HE_Mesh m = null;
  92.   HE_MeshIterator it = meshColl.mItr();
  93.   while(it.hasNext()) {
  94.    m = it.next();
  95.    selectRender.drawFaces(m);
  96.    if(selectRender.getKey(mouseX, mouseY) > 0) break;
  97.   }
  98.  mesh = m;
  99. }
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement