// Parse an tagged file into a Kinematic Virtual Machine import java.awt.*; import java.net.*; import java.util.*; public abstract class KVMFile extends KVM { TagsVector tags; String tag(int i) { return (String)tags.elementAt(i); } double x, y, z; KVMFile(URL context, String URLName) { tags = new TagsVector(context, URLName); for (int i = 0 ; i < tags.size() ; i++) { if (tag(i).equals("local")) push(); else if (tag(i).equals("/local")) pop(); else if (tag(i).equals("joint")) { ++i; joint(tag(++i)); } else if (tag(i).equals("moveTo")) { ++i; parseXYZ(tag(++i)); moveTo(x, y, z); } else if (tag(i).equals("lineTo")) { ++i; parseXYZ(tag(++i)); lineTo(x, y, z); } } } void parseXYZ(String xyzS) { int c1 = xyzS.indexOf(','); String yzS = xyzS.substring(c1+1); int c2 = yzS.indexOf(','); x = (new Double(xyzS.substring(0, c1))).doubleValue(); y = (new Double( yzS.substring(0, c2))).doubleValue(); z = (new Double( yzS.substring(c2+1 ))).doubleValue(); } }