/** * Draws only the vertices of the given shape in white. Normals and indices are ignored. TODO: * negative W are possible, fix plx? * * @param shape * @param t */ private void drawDotty(Shape shape, Matrix4f t) { float[] points = null, colors = null; for (VertexElement ve : shape.getVertexData().getElements()) { switch (ve.getSemantic()) { case POSITION: points = ve.getData(); break; case COLOR: colors = ve.getData(); break; case NORMAL: // DO NOT WANT break; case TEXCOORD: // DO NOT WANT break; } } for (int i = 0; i < points.length; i += 3) { Point4f v = new Point4f(points[i], points[i + 1], points[i + 2], 1); Color3f c = new Color3f(colors[i], colors[i + 1], colors[i + 2]); t.transform(v); int x = Math.round(v.x / v.w); int y = Math.round(v.y / v.w); if (x >= 0 && y >= 0 && y < colorBuffer.getHeight() && x < colorBuffer.getWidth()) drawPointAt(x, y, c.get().getRGB()); } }
public void getPropertyComponents(List comps, final ObjectListener listener) { visibleCbx = new JCheckBox(getName(), visible); float[] rgb = color.get().getRGBComponents(null); slider = new JSlider(0, 100, (int) (rgb[0] * 100)); float[] xyz = new float[3]; direction.get(xyz); directionXFld = makeField("" + xyz[0], listener, "X Direction"); directionYFld = makeField("" + xyz[1], listener, "Y Direction"); directionZFld = makeField("" + xyz[2], listener, "Z Direction"); double[] pxyz = new double[3]; location.get(pxyz); locationXFld = makeField("" + pxyz[0], listener, ""); locationYFld = makeField("" + pxyz[1], listener, ""); locationZFld = makeField("" + pxyz[2], listener, ""); List fldComps = Misc.newList(GuiUtils.rLabel("Direction:"), directionXFld, directionYFld, directionZFld); // // fldComps.addAll(Misc.newList(GuiUtils.rLabel("Location:"),locationXFld,locationYFld,locationZFld)); comps.add(visibleCbx); GuiUtils.tmpInsets = new Insets(0, 2, 0, 0); comps.add( GuiUtils.vbox( slider, GuiUtils.left(GuiUtils.doLayout(fldComps, 4, GuiUtils.WT_N, GuiUtils.WT_N)))); if (listener != null) { visibleCbx.addActionListener(listener); slider.addChangeListener(listener); } }
public void brighter() { float[] rgb = color.get().getRGBComponents(null); rgb[0] = (float) Math.min(rgb[0] + 0.1, 1.0); rgb[1] = (float) Math.min(rgb[1] + 0.1, 1.0); rgb[2] = (float) Math.min(rgb[2] + 0.1, 1.0); color = new Color3f(rgb); updateLight(); }
public Color getBackgroundColor() { Color3f bgcolor3f = new Color3f(); background.getColor(bgcolor3f); return bgcolor3f.get(); }