|
From: <tre...@us...> - 2007-09-28 19:40:13
|
Revision: 457
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=457&view=rev
Author: trevorolio
Date: 2007-09-28 12:40:06 -0700 (Fri, 28 Sep 2007)
Log Message:
-----------
Introducing morphs! Well, some foundations for morphs, anyway.
Added a data data format to save vertex deltas between two obj files, which we will eventually use to interpolate a mesh.
So, someone can tweak a body mesh (e.g. make the nose bigger) and generate a morph file which describes the change.
I still have to make the J3DBodyData read the morphs, arrange them in an ADG, read user prefs for how far to interpolate the morphs, and then apply them to the mesh. And it all needs to be tested and represented in the body editor UI. *whew*
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
Added Paths:
-----------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMap.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,101 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+
+package com.ogoglio.viewer.j3d.body;
+
+import java.util.Vector;
+
+import javax.vecmath.Vector3f;
+
+import com.ogoglio.util.ArgumentUtils;
+
+public class MorphDeltaMap {
+
+ String name = null;
+
+ Vector ranges = new Vector();
+
+ public MorphDeltaMap(String name) {
+ this.name = name;
+ }
+
+ public void addRange(Range range) {
+ ranges.add(range);
+ }
+
+ public Range[] getRanges() {
+ return (Range[]) ranges.toArray(new Range[0]);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public static class Range {
+ int lower = -1;
+
+ Vector3f[] deltas = null;
+
+ public Range(int lower,Vector3f[] deltas) {
+ ArgumentUtils.assertNotNegative(lower);
+ this.lower = lower;
+ ArgumentUtils.assertNotNull(deltas);
+ this.deltas = deltas;
+ }
+
+ /**
+ * @return a ONE BASED vertex index for an Obj mesh
+ */
+ public int getLower() {
+ return lower;
+ }
+
+ public int getVertexCount() {
+ return deltas.length;
+ }
+
+ public Vector3f[] getDeltas() {
+ return deltas;
+ }
+ }
+
+ public int getVertexCount() {
+ Range[] ranges = getRanges();
+ int total = 0;
+ for (int i = 0; i < ranges.length; i++) {
+ total += ranges[i].getVertexCount();
+ }
+ return total;
+ }
+
+ public String toString() {
+ StringBuffer result = new StringBuffer();
+ result.append("# MorphDeltaMap\n");
+ result.append(name + "\n\n");
+ Range[] ranges = getRanges();
+ for (int i = 0; i < ranges.length; i++) {
+ result.append(ranges[i].lower);
+ for (int j = 0; j < ranges[i].getVertexCount(); j++) {
+ Vector3f delta = ranges[i].getDeltas()[j];
+ result.append("\t" + format(delta.x) + "," + format(delta.y) + "," + format(delta.z));
+ }
+ result.append("\n");
+ }
+ return result.toString();
+ }
+ private String format(float value){
+ Object[] args = { new Float(value) };
+ return String.format("%f", args);
+ }
+}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParseException.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,20 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+package com.ogoglio.viewer.j3d.body;
+
+public class MorphDeltaMapParseException extends Exception {
+ public MorphDeltaMapParseException(String message) {
+ super(message);
+ }
+}
Added: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java (rev 0)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/body/MorphDeltaMapParser.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,85 @@
+/* Copyright 2007 Transmutable (http://transmutable.com/)
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. */
+package com.ogoglio.viewer.j3d.body;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Vector;
+import java.util.regex.Pattern;
+
+import javax.vecmath.Vector3f;
+
+import com.ogoglio.util.ArgumentUtils;
+import com.ogoglio.viewer.j3d.obj.LineTokenizer;
+
+public class MorphDeltaMapParser {
+
+ private InputStream input = null;
+
+ private LineTokenizer tokenizer = null;
+
+ private MorphDeltaMap map = null;
+
+ public MorphDeltaMapParser(InputStream input) {
+ ArgumentUtils.assertNotNull(input);
+ this.input = input;
+ tokenizer = new LineTokenizer(input);
+ }
+
+ public MorphDeltaMap parse() throws IOException, MorphDeltaMapParseException {
+ String[] tokens = null;
+
+ while ((tokens = tokenizer.readNextLine()) != null) {
+ if (tokens.length == 0 || tokens[0].startsWith("#")) {
+ continue;
+ } else if (map == null) {
+ parseName(tokens);
+ } else {
+ parseRange(tokens);
+ }
+ }
+
+ if (map == null) { //we never parsed a name!
+ throw new MorphDeltaMapParseException("No name defined in this morph file");
+ }
+ return map;
+ }
+
+ private void parseName(String[] tokens) throws MorphDeltaMapParseException {
+ map = new MorphDeltaMap(LineTokenizer.toString(tokens));
+ }
+
+ private void parseRange(String[] tokens) throws MorphDeltaMapParseException {
+ if(tokens.length < 2){
+ throw new MorphDeltaMapParseException("Bad range: " + LineTokenizer.toString(tokens));
+ }
+ int startingIndex = Integer.parseInt(tokens[0]);
+
+ Vector deltas = new Vector();
+ for (int i = 1; i < tokens.length; i++) {
+ deltas.add(parseVector3f(tokens[i]));
+ }
+
+ MorphDeltaMap.Range range = new MorphDeltaMap.Range(startingIndex, (Vector3f[])deltas.toArray(new Vector3f[0]));
+ map.addRange(range);
+ }
+
+ private Vector3f parseVector3f(String token) throws MorphDeltaMapParseException {
+ String[] subTokens = token.split(Pattern.quote(","));
+ if(subTokens.length != 3){
+ throw new MorphDeltaMapParseException("Bad vector parse: " + token);
+ }
+ return new Vector3f(Float.parseFloat(subTokens[0]), Float.parseFloat(subTokens[1]), Float.parseFloat(subTokens[2]));
+ }
+}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-09-28 19:39:59 UTC (rev 456)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/viewer/j3d/obj/LineTokenizer.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -49,4 +49,12 @@
}
return results;
}
+
+ public static String toString(String[] tokens) {
+ StringBuffer result = new StringBuffer();
+ for (int i = 0; i < tokens.length; i++) {
+ result.append(tokens[i] + " ");
+ }
+ return result.toString().trim();
+ }
}
\ No newline at end of file
Added: maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java
===================================================================
--- maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java (rev 0)
+++ maven/trunk/ogoglio-common/src/test/java/com/ogoglio/viewer/j3d/body/test/MorphTest.java 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,44 @@
+package com.ogoglio.viewer.j3d.body.test;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import com.ogoglio.util.UIConstants;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMap;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParseException;
+import com.ogoglio.viewer.j3d.body.MorphDeltaMapParser;
+
+public class MorphTest extends TestCase {
+
+ public static final String MORPH1_RESOURCE_PATH = "sample-art3d/MorphTest1.ogmorph";
+
+ public void testMorphDeltaMapParse() throws IOException, MorphDeltaMapParseException {
+ MorphDeltaMap map1 = new MorphDeltaMapParser(UIConstants.getResource(MORPH1_RESOURCE_PATH)).parse();
+ assertNotNull(map1.getName());
+ assertTrue(map1.getName().length() > 0);
+ assertTrue(map1.getRanges().length > 0);
+ assertTrue(map1.getRanges()[0].getDeltas().length > 0);
+ assertTrue(map1.getRanges()[0].getLower() > 0); //indices are 1 based, like skinmaps and obj files
+ MorphDeltaMap map2 = new MorphDeltaMapParser(new ByteArrayInputStream(map1.toString().getBytes())).parse();
+ assertMapsEqual(map1, map2);
+ }
+
+ private void assertMapsEqual(MorphDeltaMap map1, MorphDeltaMap map2) {
+ assertEquals(map1.getName(), map2.getName());
+ assertEquals(map1.getVertexCount(), map2.getVertexCount());
+ assertEquals(map1.getRanges().length, map2.getRanges().length);
+ for (int i = 0; i < map1.getRanges().length; i++) {
+ assertRangesEqual(map1.getRanges()[i], map2.getRanges()[i]);
+ }
+ }
+
+ private void assertRangesEqual(MorphDeltaMap.Range range1, MorphDeltaMap.Range range2) {
+ assertEquals(range1.getLower(), range2.getLower());
+ assertEquals(range1.getDeltas().length, range2.getDeltas().length);
+ for (int i = 0; i < range1.getDeltas().length; i++) {
+ assertTrue(range1.getDeltas()[i].epsilonEquals(range2.getDeltas()[i], 0.00001f));
+ }
+ }
+}
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.obj 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,483 @@
+o Grid
+v 1.000000 -1.000000 0.000000
+v 0.866667 -1.000000 0.000000
+v 0.733333 -1.000000 0.000000
+v 0.600000 -1.000000 0.000000
+v 0.466667 -1.000000 0.000000
+v 0.333333 -1.000000 0.000000
+v 0.200000 -1.000000 0.000000
+v 0.066667 -1.000000 0.000000
+v -0.066667 -1.000000 0.000000
+v -0.200000 -1.000000 0.000000
+v -0.333333 -1.000000 0.000000
+v -0.466667 -1.000000 0.000000
+v -0.600000 -1.000000 0.000000
+v -0.733333 -1.000000 0.000000
+v -0.866667 -1.000000 0.000000
+v -1.000000 -1.000000 0.000000
+v -1.000000 -0.866667 0.000000
+v -0.866667 -0.866667 0.000000
+v -0.733333 -0.866667 0.000000
+v -0.600000 -0.866667 0.000000
+v -0.466667 -0.866667 0.000000
+v -0.333333 -0.866667 0.000000
+v -0.200000 -0.866667 0.000000
+v -0.066667 -0.866667 0.000000
+v 0.066667 -0.866667 0.000000
+v 0.200000 -0.866667 0.000000
+v 0.333333 -0.866667 0.000000
+v 0.466667 -0.866667 0.000000
+v 0.600000 -0.866667 0.000000
+v 0.733333 -0.866667 0.000000
+v 0.866667 -0.866667 0.000000
+v 1.000000 -0.866667 0.000000
+v 1.000000 -0.733333 0.000000
+v 0.866667 -0.733333 0.000000
+v 0.733333 -0.733333 0.000000
+v 0.600000 -0.733333 0.000000
+v 0.466667 -0.733333 0.000000
+v 0.333333 -0.733333 0.000000
+v 0.200000 -0.733333 0.000000
+v 0.066667 -0.733333 0.000000
+v -0.066667 -0.733333 0.000000
+v -0.200000 -0.733333 0.000000
+v -0.333333 -0.733333 0.000000
+v -0.466667 -0.733333 0.000000
+v -0.600000 -0.733333 0.000000
+v -0.733333 -0.733333 0.000000
+v -0.866667 -0.733333 0.000000
+v -1.000000 -0.733333 0.000000
+v -1.000000 -0.600000 0.000000
+v -0.866667 -0.600000 0.000000
+v -0.733333 -0.600000 0.000000
+v -0.600000 -0.600000 0.000000
+v -0.466667 -0.600000 0.000000
+v -0.333333 -0.600000 0.000000
+v -0.200000 -0.600000 0.000000
+v -0.066667 -0.600000 0.000000
+v 0.066667 -0.600000 0.000000
+v 0.200000 -0.600000 0.000000
+v 0.333333 -0.600000 0.000000
+v 0.466667 -0.600000 0.000000
+v 0.600000 -0.600000 0.000000
+v 0.733333 -0.600000 0.000000
+v 0.866667 -0.600000 0.000000
+v 1.000000 -0.600000 0.000000
+v 1.000000 -0.466667 0.000000
+v 0.866667 -0.466667 0.000000
+v 0.733333 -0.466667 0.000000
+v 0.600000 -0.466667 0.000000
+v 0.466667 -0.466667 0.000000
+v 0.333333 -0.466667 0.000000
+v 0.200000 -0.466667 0.000000
+v 0.066667 -0.466667 0.000000
+v -0.066667 -0.466667 0.000000
+v -0.200000 -0.466667 0.000000
+v -0.333333 -0.466667 0.000000
+v -0.466667 -0.466667 0.000000
+v -0.600000 -0.466667 0.000000
+v -0.733333 -0.466667 0.000000
+v -0.866667 -0.466667 0.000000
+v -1.000000 -0.466667 0.000000
+v -1.000000 -0.333333 0.000000
+v -0.866667 -0.333333 0.000000
+v -0.733333 -0.333333 0.000000
+v -0.600000 -0.333333 0.000000
+v -0.466667 -0.333333 0.000000
+v -0.333333 -0.333333 0.000000
+v -0.200000 -0.333333 0.000000
+v -0.066667 -0.333333 0.000000
+v 0.066667 -0.333333 0.000000
+v 0.200000 -0.333333 0.000000
+v 0.333333 -0.333333 0.000000
+v 0.466667 -0.333333 0.000000
+v 0.600000 -0.333333 0.000000
+v 0.733333 -0.333333 0.000000
+v 0.866667 -0.333333 0.000000
+v 1.000000 -0.333333 0.000000
+v 1.000000 -0.200000 0.000000
+v 0.866667 -0.200000 0.000000
+v 0.733333 -0.200000 0.000000
+v 0.600000 -0.200000 0.000000
+v 0.466667 -0.200000 0.000000
+v 0.333333 -0.200000 0.000000
+v 0.200000 -0.200000 0.000000
+v 0.066667 -0.200000 0.000000
+v -0.066667 -0.200000 0.000000
+v -0.200000 -0.200000 0.000000
+v -0.333333 -0.200000 0.000000
+v -0.466667 -0.200000 0.000000
+v -0.600000 -0.200000 0.000000
+v -0.733333 -0.200000 0.000000
+v -0.866667 -0.200000 0.000000
+v -1.000000 -0.200000 0.000000
+v -1.000000 -0.066667 0.000000
+v -0.866667 -0.066667 0.000000
+v -0.733333 -0.066667 0.000000
+v -0.600000 -0.066667 0.000000
+v -0.466667 -0.066667 0.000000
+v -0.333333 -0.066667 0.000000
+v -0.200000 -0.066667 0.000000
+v -0.066667 -0.066667 0.000000
+v 0.066667 -0.066667 0.000000
+v 0.200000 -0.066667 0.000000
+v 0.333333 -0.066667 0.000000
+v 0.466667 -0.066667 0.000000
+v 0.600000 -0.066667 0.000000
+v 0.733333 -0.066667 0.000000
+v 0.866667 -0.066667 0.000000
+v 1.000000 -0.066667 0.000000
+v 1.000000 0.066667 0.000000
+v 0.866667 0.066667 0.000000
+v 0.733333 0.066667 0.000000
+v 0.600000 0.066667 0.000000
+v 0.466667 0.066667 0.000000
+v 0.333333 0.066667 0.000000
+v 0.200000 0.066667 0.000000
+v 0.066667 0.066667 0.000000
+v -0.066667 0.066667 0.000000
+v -0.200000 0.066667 0.000000
+v -0.333333 0.066667 0.000000
+v -0.466667 0.066667 0.000000
+v -0.600000 0.066667 0.000000
+v -0.733333 0.066667 0.000000
+v -0.866667 0.066667 0.000000
+v -1.000000 0.066667 0.000000
+v -1.000000 0.200000 0.000000
+v -0.866667 0.200000 0.000000
+v -0.733333 0.200000 0.000000
+v -0.600000 0.200000 0.000000
+v -0.466667 0.200000 0.000000
+v -0.333333 0.200000 0.000000
+v -0.200000 0.200000 0.000000
+v -0.066667 0.200000 0.000000
+v 0.066667 0.200000 0.000000
+v 0.200000 0.200000 0.000000
+v 0.333333 0.200000 0.000000
+v 0.466667 0.200000 0.000000
+v 0.600000 0.200000 0.000000
+v 0.733333 0.200000 0.000000
+v 0.866667 0.200000 0.000000
+v 1.000000 0.200000 0.000000
+v 1.000000 0.333333 0.000000
+v 0.866667 0.333333 0.000000
+v 0.733333 0.333333 0.000000
+v 0.600000 0.333333 0.000000
+v 0.466667 0.333333 0.000000
+v 0.333333 0.333333 0.000000
+v 0.200000 0.333333 0.000000
+v 0.066667 0.333333 0.000000
+v -0.066667 0.333333 0.000000
+v -0.200000 0.333333 0.000000
+v -0.333333 0.333333 0.000000
+v -0.466667 0.333333 0.000000
+v -0.600000 0.333333 0.000000
+v -0.733333 0.333333 0.000000
+v -0.866667 0.333333 0.000000
+v -1.000000 0.333333 0.000000
+v -1.000000 0.466667 0.000000
+v -0.866667 0.466667 0.000000
+v -0.733333 0.466667 0.000000
+v -0.600000 0.466667 0.000000
+v -0.466667 0.466667 0.000000
+v -0.333333 0.466667 0.000000
+v -0.200000 0.466667 0.000000
+v -0.066667 0.466667 0.000000
+v 0.066667 0.466667 0.000000
+v 0.200000 0.466667 0.000000
+v 0.333333 0.466667 0.000000
+v 0.466667 0.466667 0.000000
+v 0.600000 0.466667 0.000000
+v 0.733333 0.466667 0.000000
+v 0.866667 0.466667 0.000000
+v 1.000000 0.466667 0.000000
+v 1.000000 0.600000 0.000000
+v 0.866667 0.600000 0.000000
+v 0.733333 0.600000 0.000000
+v 0.600000 0.600000 0.000000
+v 0.466667 0.600000 0.000000
+v 0.333333 0.600000 0.000000
+v 0.200000 0.600000 0.000000
+v 0.066667 0.600000 0.000000
+v -0.066667 0.600000 0.000000
+v -0.200000 0.600000 0.000000
+v -0.333333 0.600000 0.000000
+v -0.466667 0.600000 0.000000
+v -0.600000 0.600000 0.000000
+v -0.733333 0.600000 0.000000
+v -0.866667 0.600000 0.000000
+v -1.000000 0.600000 0.000000
+v -1.000000 0.733333 0.000000
+v -0.866667 0.733333 0.000000
+v -0.733333 0.733333 0.000000
+v -0.600000 0.733333 0.000000
+v -0.466667 0.733333 0.000000
+v -0.333333 0.733333 0.000000
+v -0.200000 0.733333 0.000000
+v -0.066667 0.733333 0.000000
+v 0.066667 0.733333 0.000000
+v 0.200000 0.733333 0.000000
+v 0.333333 0.733333 0.000000
+v 0.466667 0.733333 0.000000
+v 0.600000 0.733333 0.000000
+v 0.733333 0.733333 0.000000
+v 0.866667 0.733333 0.000000
+v 1.000000 0.733333 0.000000
+v 1.000000 0.866667 0.000000
+v 0.866667 0.866667 0.000000
+v 0.733333 0.866667 0.000000
+v 0.600000 0.866667 0.000000
+v 0.466667 0.866667 0.000000
+v 0.333333 0.866667 0.000000
+v 0.200000 0.866667 0.000000
+v 0.066667 0.866667 0.000000
+v -0.066667 0.866667 0.000000
+v -0.200000 0.866667 0.000000
+v -0.333333 0.866667 0.000000
+v -0.466667 0.866667 0.000000
+v -0.600000 0.866667 0.000000
+v -0.733333 0.866667 0.000000
+v -0.866667 0.866667 0.000000
+v -1.000000 0.866667 0.000000
+v -1.000000 1.000000 0.000000
+v -0.866667 1.000000 0.000000
+v -0.733333 1.000000 0.000000
+v -0.600000 1.000000 0.000000
+v -0.466667 1.000000 0.000000
+v -0.333333 1.000000 0.000000
+v -0.200000 1.000000 0.000000
+v -0.066667 1.000000 0.000000
+v 0.066667 1.000000 0.000000
+v 0.200000 1.000000 0.000000
+v 0.333333 1.000000 0.000000
+v 0.466667 1.000000 0.000000
+v 0.600000 1.000000 0.000000
+v 0.733333 1.000000 0.000000
+v 0.866667 1.000000 0.000000
+v 1.000000 1.000000 0.000000
+s off
+f 16 15 18 17
+f 15 14 19 18
+f 14 13 20 19
+f 13 12 21 20
+f 12 11 22 21
+f 11 10 23 22
+f 10 9 24 23
+f 9 8 25 24
+f 8 7 26 25
+f 7 6 27 26
+f 6 5 28 27
+f 5 4 29 28
+f 4 3 30 29
+f 3 2 31 30
+f 2 1 32 31
+f 31 32 33 34
+f 30 31 34 35
+f 29 30 35 36
+f 28 29 36 37
+f 27 28 37 38
+f 26 27 38 39
+f 25 26 39 40
+f 24 25 40 41
+f 23 24 41 42
+f 22 23 42 43
+f 21 22 43 44
+f 20 21 44 45
+f 19 20 45 46
+f 18 19 46 47
+f 17 18 47 48
+f 48 47 50 49
+f 47 46 51 50
+f 46 45 52 51
+f 45 44 53 52
+f 44 43 54 53
+f 43 42 55 54
+f 42 41 56 55
+f 41 40 57 56
+f 40 39 58 57
+f 39 38 59 58
+f 38 37 60 59
+f 37 36 61 60
+f 36 35 62 61
+f 35 34 63 62
+f 34 33 64 63
+f 63 64 65 66
+f 62 63 66 67
+f 61 62 67 68
+f 60 61 68 69
+f 59 60 69 70
+f 58 59 70 71
+f 57 58 71 72
+f 56 57 72 73
+f 55 56 73 74
+f 54 55 74 75
+f 53 54 75 76
+f 52 53 76 77
+f 51 52 77 78
+f 50 51 78 79
+f 49 50 79 80
+f 80 79 82 81
+f 79 78 83 82
+f 78 77 84 83
+f 77 76 85 84
+f 76 75 86 85
+f 75 74 87 86
+f 74 73 88 87
+f 73 72 89 88
+f 72 71 90 89
+f 71 70 91 90
+f 70 69 92 91
+f 69 68 93 92
+f 68 67 94 93
+f 67 66 95 94
+f 66 65 96 95
+f 95 96 97 98
+f 94 95 98 99
+f 93 94 99 100
+f 92 93 100 101
+f 91 92 101 102
+f 90 91 102 103
+f 89 90 103 104
+f 88 89 104 105
+f 87 88 105 106
+f 86 87 106 107
+f 85 86 107 108
+f 84 85 108 109
+f 83 84 109 110
+f 82 83 110 111
+f 81 82 111 112
+f 112 111 114 113
+f 111 110 115 114
+f 110 109 116 115
+f 109 108 117 116
+f 108 107 118 117
+f 107 106 119 118
+f 106 105 120 119
+f 105 104 121 120
+f 104 103 122 121
+f 103 102 123 122
+f 102 101 124 123
+f 101 100 125 124
+f 100 99 126 125
+f 99 98 127 126
+f 98 97 128 127
+f 127 128 129 130
+f 126 127 130 131
+f 125 126 131 132
+f 124 125 132 133
+f 123 124 133 134
+f 122 123 134 135
+f 121 122 135 136
+f 120 121 136 137
+f 119 120 137 138
+f 118 119 138 139
+f 117 118 139 140
+f 116 117 140 141
+f 115 116 141 142
+f 114 115 142 143
+f 113 114 143 144
+f 144 143 146 145
+f 143 142 147 146
+f 142 141 148 147
+f 141 140 149 148
+f 140 139 150 149
+f 139 138 151 150
+f 138 137 152 151
+f 137 136 153 152
+f 136 135 154 153
+f 135 134 155 154
+f 134 133 156 155
+f 133 132 157 156
+f 132 131 158 157
+f 131 130 159 158
+f 130 129 160 159
+f 159 160 161 162
+f 158 159 162 163
+f 157 158 163 164
+f 156 157 164 165
+f 155 156 165 166
+f 154 155 166 167
+f 153 154 167 168
+f 152 153 168 169
+f 151 152 169 170
+f 150 151 170 171
+f 149 150 171 172
+f 148 149 172 173
+f 147 148 173 174
+f 146 147 174 175
+f 145 146 175 176
+f 176 175 178 177
+f 175 174 179 178
+f 174 173 180 179
+f 173 172 181 180
+f 172 171 182 181
+f 171 170 183 182
+f 170 169 184 183
+f 169 168 185 184
+f 168 167 186 185
+f 167 166 187 186
+f 166 165 188 187
+f 165 164 189 188
+f 164 163 190 189
+f 163 162 191 190
+f 162 161 192 191
+f 191 192 193 194
+f 190 191 194 195
+f 189 190 195 196
+f 188 189 196 197
+f 187 188 197 198
+f 186 187 198 199
+f 185 186 199 200
+f 184 185 200 201
+f 183 184 201 202
+f 182 183 202 203
+f 181 182 203 204
+f 180 181 204 205
+f 179 180 205 206
+f 178 179 206 207
+f 177 178 207 208
+f 208 207 210 209
+f 207 206 211 210
+f 206 205 212 211
+f 205 204 213 212
+f 204 203 214 213
+f 203 202 215 214
+f 202 201 216 215
+f 201 200 217 216
+f 200 199 218 217
+f 199 198 219 218
+f 198 197 220 219
+f 197 196 221 220
+f 196 195 222 221
+f 195 194 223 222
+f 194 193 224 223
+f 223 224 225 226
+f 222 223 226 227
+f 221 222 227 228
+f 220 221 228 229
+f 219 220 229 230
+f 218 219 230 231
+f 217 218 231 232
+f 216 217 232 233
+f 215 216 233 234
+f 214 215 234 235
+f 213 214 235 236
+f 212 213 236 237
+f 211 212 237 238
+f 210 211 238 239
+f 209 210 239 240
+f 240 239 242 241
+f 239 238 243 242
+f 238 237 244 243
+f 237 236 245 244
+f 236 235 246 245
+f 235 234 247 246
+f 234 233 248 247
+f 233 232 249 248
+f 232 231 250 249
+f 231 230 251 250
+f 230 229 252 251
+f 229 228 253 252
+f 228 227 254 253
+f 227 226 255 254
+f 226 225 256 255
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest1.ogmorph 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,9 @@
+# MorphDeltaMap
+testMorph1
+
+3 0.000000,0.000000,1.733333 0.000000,0.000000,1.600000 0.000000,0.000000,1.466667 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667
+18 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533334 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933334 0.000000,0.000000,1.066667 0.000000,0.000000,1.200000 0.000000,0.000000,1.333334 0.000000,0.000000,1.466667 0.000000,0.000000,1.600000 0.000000,0.000000,1.733334
+33 0.000000,0.000000,1.733333 0.000000,0.000000,1.600000 0.000000,0.000000,1.466666 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066666 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666666 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266666 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933333 0.000000,0.000000,1.066667 0.000000,0.000000,1.200000 0.000000,0.000000,1.333333 0.000000,0.000000,1.466667 0.000000,0.000000,1.600000 0.000000,0.000000,1.466667 0.000000,0.000000,1.333334 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933334 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533334 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266666 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666666 0.000000,0.000000,0.800000 0.000000,0.000000,0.933333 0.000000,0.000000,1.066666 0.000000,0.000000,1.200000 0.000000,0.000000,1.333333 0.000000,0.000000,1.200000 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533334 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.933334 0.000000,0.000000,1.066667 0.000000,0.000000,0.933333 0.000000,0.000000,0.800000 0.000000,0.000000,0.666666 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266666 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933334 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266667 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.666667 0.000000,0.000000,0.800000 0.000000,0.000000,0.666667 0.000000,0.000000,0.533334 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-1.066666 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.333334 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933334 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.133334 0.000000,0.000000,0.000000 0.000000,0.000000,0.133333 0.000000,0.000000,0.266666 0.000000,0.000000,0.400000 0.000000,0.000000,0.533333 0.000000,0.000000,0.400000 0.000000,0.000000,0.266667 0.000000,0.000000,0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133333 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933333 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.733333 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.466666 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066666 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666666 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266666 0.000000,0.000000,-0.133333 0.000000,0.000000,0.000000 0.000000,0.000000,0.133334 0.000000,0.000000,0.266667
+226 0.000000,0.000000,0.000000 0.000000,0.000000,-0.133334 0.000000,0.000000,-0.266667 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.533334 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.933334 0.000000,0.000000,-1.066667 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.333334 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.733334
+243 0.000000,0.000000,-1.733333 0.000000,0.000000,-1.600000 0.000000,0.000000,-1.466667 0.000000,0.000000,-1.333333 0.000000,0.000000,-1.200000 0.000000,0.000000,-1.066667 0.000000,0.000000,-0.933333 0.000000,0.000000,-0.800000 0.000000,0.000000,-0.666667 0.000000,0.000000,-0.533333 0.000000,0.000000,-0.400000 0.000000,0.000000,-0.266667
+
Added: maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj
===================================================================
--- maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj (rev 0)
+++ maven/trunk/ogoglio-common/src/test/resources/sample-art3d/MorphTest2.obj 2007-09-28 19:40:06 UTC (rev 457)
@@ -0,0 +1,483 @@
+o Grid
+v 1.000000 -1.000000 0.000000
+v 0.866667 -1.000000 0.000000
+v 0.733333 -1.000000 0.001451
+v 0.600000 -1.000000 0.010401
+v 0.466667 -1.000000 0.022082
+v 0.333333 -1.000000 0.031330
+v 0.200000 -1.000000 0.034801
+v 0.066667 -1.000000 0.034801
+v -0.066667 -1.000000 0.034801
+v -0.200000 -1.000000 0.034801
+v -0.333333 -1.000000 0.031330
+v -0.466667 -1.000000 0.022082
+v -0.600000 -1.000000 0.010401
+v -0.733333 -1.000000 0.001451
+v -0.866667 -1.000000 0.000000
+v -1.000000 -1.000000 0.000000
+v -1.000000 -0.866667 0.000000
+v -0.866667 -0.866667 0.003158
+v -0.733333 -0.866667 0.019378
+v -0.600000 -0.866667 0.042340
+v -0.466667 -0.866667 0.064814
+v -0.333333 -0.866667 0.080923
+v -0.200000 -0.866667 0.086754
+v -0.066667 -0.866667 0.086754
+v 0.066667 -0.866667 0.086754
+v 0.200000 -0.866667 0.086754
+v 0.333333 -0.866667 0.080923
+v 0.466667 -0.866667 0.064814
+v 0.600000 -0.866667 0.042340
+v 0.733333 -0.866667 0.019378
+v 0.866667 -0.866667 0.003158
+v 1.000000 -0.866667 0.000000
+v 1.000000 -0.733333 0.001451
+v 0.866667 -0.733333 0.019378
+v 0.733333 -0.733333 0.050695
+v 0.600000 -0.733333 0.086754
+v 0.466667 -0.733333 0.119580
+v 0.333333 -0.733333 0.142423
+v 0.200000 -0.733333 0.150604
+v 0.066667 -0.733333 0.150604
+v -0.066667 -0.733333 0.150604
+v -0.200000 -0.733333 0.150604
+v -0.333333 -0.733333 0.142423
+v -0.466667 -0.733333 0.119580
+v -0.600000 -0.733333 0.086754
+v -0.733333 -0.733333 0.050695
+v -0.866667 -0.733333 0.019378
+v -1.000000 -0.733333 0.001451
+v -1.000000 -0.600000 0.010401
+v -0.866667 -0.600000 0.042340
+v -0.733333 -0.600000 0.086754
+v -0.600000 -0.600000 0.134531
+v -0.466667 -0.600000 0.176973
+v -0.333333 -0.600000 0.206321
+v -0.200000 -0.600000 0.216834
+v -0.066667 -0.600000 0.216834
+v 0.066667 -0.600000 0.216834
+v 0.200000 -0.600000 0.216834
+v 0.333333 -0.600000 0.206321
+v 0.466667 -0.600000 0.176973
+v 0.600000 -0.600000 0.134531
+v 0.733333 -0.600000 0.086754
+v 0.866667 -0.600000 0.042340
+v 1.000000 -0.600000 0.010401
+v 1.000000 -0.466667 0.022082
+v 0.866667 -0.466667 0.064814
+v 0.733333 -0.466667 0.119580
+v 0.600000 -0.466667 0.176973
+v 0.466667 -0.466667 0.227744
+v 0.333333 -0.466667 0.263125
+v 0.200000 -0.466667 0.275926
+v 0.066667 -0.466667 0.275926
+v -0.066667 -0.466667 0.275926
+v -0.200000 -0.466667 0.275926
+v -0.333333 -0.466667 0.263125
+v -0.466667 -0.466667 0.227744
+v -0.600000 -0.466667 0.176973
+v -0.733333 -0.466667 0.119580
+v -0.866667 -0.466667 0.064814
+v -1.000000 -0.466667 0.022082
+v -1.000000 -0.333333 0.031330
+v -0.866667 -0.333333 0.080923
+v -0.733333 -0.333333 0.142423
+v -0.600000 -0.333333 0.206321
+v -0.466667 -0.333333 0.263125
+v -0.333333 -0.333333 0.303415
+v -0.200000 -0.333333 0.318361
+v -0.066667 -0.333333 0.318361
+v 0.066667 -0.333333 0.318361
+v 0.200000 -0.333333 0.318361
+v 0.333333 -0.333333 0.303415
+v 0.466667 -0.333333 0.263125
+v 0.600000 -0.333333 0.206321
+v 0.733333 -0.333333 0.142423
+v 0.866667 -0.333333 0.080923
+v 1.000000 -0.333333 0.031330
+v 1.000000 -0.200000 0.034801
+v 0.866667 -0.200000 0.086754
+v 0.733333 -0.200000 0.150604
+v 0.600000 -0.200000 0.216834
+v 0.466667 -0.200000 0.275926
+v 0.333333 -0.200000 0.318361
+v 0.200000 -0.200000 0.334621
+v 0.066667 -0.200000 0.334621
+v -0.066667 -0.200000 0.334621
+v -0.200000 -0.200000 0.334621
+v -0.333333 -0.200000 0.318361
+v -0.466667 -0.200000 0.275926
+v -0.600000 -0.200000 0.216834
+v -0.733333 -0.200000 0.150604
+v -0.866667 -0.200000 0.086754
+v -1.000000 -0.200000 0.034801
+v -1.000000 -0.066667 0.034801
+v -0.866667 -0.066667 0.086754
+v -0.733333 -0.066667 0.150604
+v -0.600000 -0.066667 0.216834
+v -0.466667 -0.066667 0.275926
+v -0.333333 -0.066667 0.318361
+v -0.200000 -0.066667 0.334621
+v -0.066667 -0.066667 0.334621
+v 0.066667 -0.066667 0.334621
+v 0.200000 -0.066667 0.334621
+v 0.333333 -0.066667 0.318361
+v 0.466667 -0.066667 0.275926
+v 0.600000 -0.066667 0.216834
+v 0.733333 -0.066667 0.150604
+v 0.866667 -0.066667 0.086754
+v 1.000000 -0.066667 0.034801
+v 1.000000 0.066667 0.034801
+v 0.866667 0.066667 0.086754
+v 0.733333 0.066667 0.150604
+v 0.600000 0.066667 0.216834
+v 0.466667 0.066667 0.275926
+v 0.333333 0.066667 0.318361
+v 0.200000 0.066667 0.334621
+v 0.066667 0.066667 0.334621
+v -0.066667 0.066667 0.334621
+v -0.200000 0.066667 0.334621
+v -0.333333 0.066667 0.318361
+v -0.466667 0.066667 0.275926
+v -0.600000 0.066667 0.216834
+v -0.733333 0.066667 0.150604
+v -0.866667 0.066667 0.086754
+v -1.000000 0.066667 0.034801
+v -1.000000 0.200000 0.034801
+v -0.866667 0.200000 0.086754
+v -0.733333 0.200000 0.150604
+v -0.600000 0.200000 0.216834
+v -0.466667 0.200000 0.275926
+v -0.333333 0.200000 0.318361
+v -0.200000 0.200000 0.334621
+v -0.066667 0.200000 0.334621
+v 0.066667 0.200000 0.334621
+v 0.200000 0.200000 0.334621
+v 0.333333 0.200000 0.318361
+v 0.466667 0.200000 0.275926
+v 0.600000 0.200000 0.216834
+v 0.733333 0.200000 0.150604
+v 0.866667 0.200000 0.086754
+v 1.000000 0.200000 0.034801
+v 1.000000 0.333333 0.031330
+v 0.866667 0.333333 0.080923
+v 0.733333 0.333333 0.142423
+v 0.600000 0.333333 0.206321
+v 0.466667 0.333333 0.263125
+v 0.333333 0.333333 0.303415
+v 0.200000 0.333333 0.318361
+v 0.066667 0.333333 0.318361
+v -0.066667 0.333333 0.318361
+v -0.200000 0.333333 0.318361
+v -0.333333 0.333333 0.303415
+v -0.466667 0.333333 0.263125
+v -0.600000 0.333333 0.206321
+v -0.733333 0.333333 0.142423
+v -0.866667 0.333333 0.080923
+v -1.000000 0.333333 0.031330
+v -1.000000 0.466667 0.022082
+v -0.866667 0.466667 0.064814
+v -0.733333 0.466667 0.119580
+v -0.600000 0.466667 0.176973
+v -0.466667 0.466667 0.227744
+v -0.333333 0.466667 0.263125
+v -0.200000 0.466667 0.275926
+v -0.066667 0.466667 0.275926
+v 0.066667 0.466667 0.275926
+v 0.200000 0.466667 0.275926
+v 0.333333 0.466667 0.263125
+v 0.466667 0.466667 0.227744
+v 0.600000 0.466667 0.176973
+v 0.733333 0.466667 0.119580
+v 0.866667 0.466667 0.064814
+v 1.000000 0.466667 0.022082
+v 1.000000 0.600000 0.010401
+v 0.866667 0.600000 0.042340
+v 0.733333 0.600000 0.086754
+v 0.600000 0.600000 0.134531
+v 0.466667 0.600000 0.176973
+v 0.333333 0.600000 0.206321
+v 0.200000 0.600000 0.216834
+v 0.066667 0.600000 0.216834
+v -0.066667 0.600000 0.216834
+v -0.200000 0.600000 0.216834
+v -0.333333 0.600000 0.206321
+v -0.466667 0.600000 0.176973
+v -0.600000 0.600000 0.134531
+v -0.733333 0.600000 0.086754
+v -0.866667 0.600000 0.042340
+v -1.000000 0.600000 0.010401
+v -1.000000 0.733333 0.001451
+v -0.866667 0.733333 0.019378
+v -0.733333 0.733333 0.050695
+v -0.600000 0.733333 0.086754
+v -0.466667 0.733333 0.119580
+v -0.333333 0.733333 0.142423
+v -0.200000 0.733333 0.150604
+v -0.066667 0.733333 0.150604
+v 0.066667 0.733333 0.150604
+v 0.200000 0.733333 0.150604
+v 0.333333 0.733333 0.142423
+v 0.466667 0.733333 0.119580
+v 0.600000 0.733333 0.086754
+v 0.733333 0.733333 0.050695
+v 0.866667 0.733333 0.019378
+v 1.000000 0.733333 0.001451
+v 1.000000 0.866667 0.000000
+v 0.866667 0.866667 0.003158
+v 0.733333 0.866667 0.019378
+v 0.600000 0.866667 0.042340
+v 0.466667 0.866667 0.064814
+v 0.333333 0.866667 0.080923
+v 0.200000 0.866667 0.086754
+v 0.066667 0.866667 0.086754
+v -0.066667 0.866667 0.086754
+v -0.200000 0.866667 0.086754
+v -0.333333 0.866667 0.080923
+v -0.466667 0.866667 0.064814
+v -0.600000 0.866667 0.042340
+v -0.733333 0.866667 0.019378
+v -0.866667 0.866667 0.003158
+v -1.000000 0.866667 0.000000
+v -1.000000 1.000000 0.000000
+v -0.866667 1.000000 0.000000
+v -0.733333 1.000000 0.001451
+v -0.600000 1.000000 0.010401
+v -0.466667 1.000000 0.022082
+v -0.333333 1.000000 0.031330
+v -0.200000 1.000000 0.034801
+v -0.066667 1.000000 0.034801
+v 0.066667 1.000000 0.034801
+v 0.200000 1.000000 0.034801
+v 0.333333 1.000000 0.031330
+v 0.466667 1.000000 0.022082
+v 0.600000 1.000000 0.010401
+v 0.733333 1.000000 0.001451
+v 0.866667 1.000000 0.000000
+v 1.000000 1.000000 0.000000
+s off
+f 16 15 18 17
+f 15 14 19 18
+f 14 13 20 19
+f 13 12 21 20
+f 12 11 22 21
+f 11 10 23 22
+f 10 9 24 23
+f 9 8 25 24
+f 8 7 26 25
+f 7 6 27 26
+f 6 5 28 27
+f 5 4 29 28
+f 4 3 30 29
+f 3 2 31 30
+f 2 1 32 31
+f 31 32 33 34
+f 30 31 34 35
+f 29 30 35 36
+f 28 29 36 37
+f 27 28 37 38
+f 26 27 38 39
+f 25 26 39 40
+f 24 25 40 41
+f 23 24 41 42
+f 22 23 42 43
+f 21 22 43 44
+f 20 21 44 45
+f 19 20 45 46
+f 18 19 46 47
+f 17 18 47 48
+f 48 47 50 49
+f 47 46 51 50
+f 46 45 52 51
+f 45 44 53 52
+f 44 43 54 53
+f 43 42 55 54
+f 42 41 56 55
+f 41 40 57 56
+f 40 39 58 57
+f 39 38 59 58
+f 38 37 60 59
+f 37 36 61 60
+f 36 35 62 61
+f 35 34 63 62
+f 34 33 64 63
+f 63 64 65 66
+f 62 63 66 67
+f 61 62 67 68
+f 60 61 68 69
+f 59 60 69 70
+f 58 59 70 71
+f 57 58 71 72
+f 56 57 72 73
+f 55 56 73 74
+f 54 55 74 75
+f 53 54 75 76
+f 52 53 76 77
+f 51 52 77 78
+f 50 51 78 79
+f 49 50 79 80
+f 80 79 82 81
+f 79 78 83 82
+f 78 77 84 83
+f 77 76 85 84
+f 76 75 86 85
+f 75 74 87 86
+f 74 73 88 87
+f 73 72 89 88
+f 72 71 90 89
+f 71 70 91 90
+f 70 69 92 91
+f 69 68 93 92
+f 68 67 94 93
+f 67 66 95 94
+f 66 65 96 95
+f 95 96 97 98
+f 94 95 98 99
+f 93 94 99 100
+f 92 93 100 101
+f 91 92 101 102
+f 90 91 102 103
+f 89 90 103 104
+f 88 89 104 105
+f 87 88 105 106
+f 86 87 106 107
+f 85 86 107 108
+f 84 85 108 109
+f 83 84 109 110
+f 82 83 110 111
+f 81 82 111 112
+f 112 111 114 113
+f 111 110 115 114
+f 110 109 116 115
+f 109 108 117 116
+f 108 107 118 117
+f 107 106 119 118
+f 106 105 120 119
+f 105 104 121 120
+f 104 103 122 121
+f 103 102 123 122
+f 102 101 124 123
+f 101 100 125 124
+f 100 99 126 125
+f 99 98 127 126
+f 98 97 128 127
+f 127 128 129 130
+f 126 127 130 131
+f 125 126 131 132
+f 124 125 132 133
+f 123 124 133 134
+f 122 123 134 135
+f 121 122 135 136
+f 120 121 136 137
+f 119 120 137 138
+f 118 119 138 139
+f 117 118 139 140
+f 116 117 140 141
+f 115 116 141 142
+f 114 115 142 143
+f 113 114 143 144
+f 144 143 146 145
+f 143 142 147 146
+f 142 141 148 147
+f 141 140 149 148
+f 140 139 150 149
+f 139 138 151 150
+f 138 137 152 151
+f 137 136 153 152
+f 136 135 154 153
+f 135 134 155 154
+f 134 133 156 155
+f 133 132 157 156
+f 132 131 158 157
+f 131 130 159 158
+f 130 129 160 159
+f 159 160 161 162
+f 158 159 162 163
+f 157 158 163 164
+f 156 157 164 165
+f 155 156 165 166
+f 154 155 166 167
+f 153 154 167 168
+f 152 153 168 169
+f 151 152 169 170
+f 150 151 170 171
+f 149 150 171 172
+f 148 149 172 173
+f 147 148 173 174
+f 146 147 174 175
+f 145 146 175 176
+f 176 175 178 177
+f 175 174 179 178
+f 174 173 180 179
+f 173 172 181 180
+f 172 171 182 181
+f 171 170 183 182
+f 170 169 184 183
+f 169 168 185 184
+f 168 167 186 185
+f 167 166 187 186
+f 166 165 188 187
+f 165 164 189 188
+f 164 163 190 189
+f 163 162 191 190
+f 162 161 192 191
+f 191 192 193 194
+f 190 191 194 195
+f 189 190 195 196
+f 188 189 196 197
+f 187 188 197 198
+f 186 187 198 199
+f 185 186 199 200
+f 184 185 200 201
+f 183 184 201 202
+f 182 183 202 203
+f 181 182 203 204
+f 180 181 204 205
+f 179 180 205 206
+f 178 179 206 207
+f 177 178 207 208
+f 208 207 210 209
+f 207 206 211 210
+f 206 205 212 211
+f 205 204 213 212
+f 204 203 214 213
+f 203 202 215 214
+f 202 201 216 215
+f 201 200 217 216
+f 200 199 218 217
+f 199 198 219 218
+f 198 197 220 219
+f 197 196 221 220
+f 196 195 222 221
+f 195 194 223 222
+f 194 193 224 223
+f 223 224 225 226
+f 222 223 226 227
+f 221 222 227 228
+f 220 221 228 229
+f 219 220 229 230
+f 218 219 230 231
+f 217 218 231 232
+f 216 217 232 233
+f 215 216 233 234
+f 214 215 234 235
+f 213 214 235 236
+f 212 213 236 237
+f 211 212 237 238
+f 210 211 238 239
+f 209 210 239 240
+f 240 239 242 241
+f 239 238 243 242
+f 238 237 244 243
+f 237 236 245 244
+f 236 235 246 245
+f 235 234 247 246
+f 234 233 248 247
+f 233 232 249 248
+f 232 231 250 249
+f 231 230 251 250
+f 230 229 252 251
+f 229 228 253 252
+f 228 227 254 253
+f 227 226 255 254
+f 226 225 256 255
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|