HE_MESH Tutorial (2)
ライブラリ
- PeasyCam
- ControlP5
- HE_Mesh
上記ライブラリをContribution Managerで検索してインストールする
コード
import controlP5.*; import peasy.*; import peasy.org.apache.commons.math.*; import peasy.org.apache.commons.math.geometry.*; import wblut.geom.*; import wblut.hemesh.*; import wblut.core.*; import wblut.math.*; import wblut.nurbs.*; import wblut.processing.*; ControlP5 cp5; WB_Render3D render; HE_Mesh mesh; int setEdge; int setWidthSegments; int setHeightSegments; int setDepthSegments; PeasyCam cam; // setup関数 : 初回1度だけ実行される void setup() { size(960, 540, P3D); // ウィンドウサイズを960px,540pxに colorMode(HSB, 360, 100, 100); // HSBでの色指定にする cp5 = new ControlP5(this); cp5.setAutoDraw(false); cp5.addSlider("setEdge").setRange(0, 500).setValue(250).setPosition(20, 20); cp5.addSlider("setWidthSegments").setRange(0, 50).setValue(5).setPosition(20, 40); cp5.addSlider("setHeightSegments").setRange(0, 50).setValue(5).setPosition(20, 60); cp5.addSlider("setDepthSegments").setRange(0, 50).setValue(5).setPosition(20, 80); cam = new PeasyCam(this, 500); create(); } void create() { render = new WB_Render3D(this); HEC_Cube creator = new HEC_Cube(); creator.setEdge(setEdge); creator.setWidthSegments(setWidthSegments).setHeightSegments(setHeightSegments).setDepthSegments(setDepthSegments); mesh = new HE_Mesh(creator); } // draw関数 : setup関数実行後繰り返し実行される void draw() { create(); background(0, 0, 0); cam.beginHUD(); directionalLight(0, 0, 100, 1, 1, -1); directionalLight(0, 0, 50, -1, -1, 1); cp5.draw(); cam.endHUD(); noStroke(); fill(0, 50, 50); render.drawFaces(mesh); fill(120, 100, 100); render.drawVertices(mesh, 10); stroke(120, 100, 100); render.drawEdges(mesh); stroke(0, 0, 100); render.drawFaceNormals( mesh, 10 ); }