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);
+ }
+ }
/**
|