[Bprocessor-commit] model/src/net/sourceforge/bprocessor/model Command.java, 1.74, 1.75
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2008-04-21 12:23:37
|
Update of /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv1314/src/net/sourceforge/bprocessor/model Modified Files: Command.java Log Message: Started Work on Spere Index: Command.java =================================================================== RCS file: /cvsroot/bprocessor/model/src/net/sourceforge/bprocessor/model/Command.java,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** Command.java 27 Mar 2008 14:49:22 -0000 1.74 --- Command.java 21 Apr 2008 12:23:08 -0000 1.75 *************** *** 1155,1158 **** --- 1155,1204 ---- } + /** + * Sphere + */ + public static class Sphere extends Shape { + /** + * + */ + public Sphere() { + parameters.add(new Attribute("radius", 1.0)); + } + /** {@inheritDoc} */ + public String title() { + return "Create Sphere"; + } + /** + * {@inheritDoc} + */ + @Override + public void evaluate() { + double radius = parameters.getDouble("radius"); + CoordinateSystem system = Project.getInstance().getActiveCoordinateSystem(); + int stacks = 8; + int slices = 6; + + Collection<Vertex> vertices = new ArrayList(); + for (int stackNumber = 0; stackNumber <= stacks; stackNumber++) { + for (int sliceNumber = 0; sliceNumber < slices; sliceNumber++) { + double theta = stackNumber * Math.PI / stacks; + double phi = sliceNumber * 2 * Math.PI / slices; + double sinTheta = Math.sin(theta); + double sinPhi = Math.sin(phi); + double cosTheta = Math.cos(theta); + double cosPhi = Math.cos(phi); + double x = radius * cosPhi * sinTheta; + double y = radius * sinPhi * sinTheta; + double z = radius * cosTheta; + vertices.add(new Vertex(x, y, z)); + } + } + Container union = new Container("Sphere", Container.CONSTRUCTION, true); + for (Vertex current : vertices) { + union.add(current); + } + Project.getInstance().getActiveSpace().add(union); + } + } /** |