def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'transform'): t = transform.Transform() t.takeParser(self._parser, self, attrs) elif (name == 'geom'): g = geom.Geom(nodeName, self) g.takeParser(self._parser) elif (name == 'group'): # parse group pass elif (name == 'body'): b = body.Body(nodeName, self, attrs) b.takeParser(self._parser) elif (name == 'jointgroup'): # parse joint group pass elif (name == 'joint'): j = joint.Joint(nodeName, self) j.takeParser(self._parser) elif (name == 'ext'): # parse ext pass else: raise errors.ChildError('space', name)
def _startElement(self, name, attrs): if (name == 'link1'): self._link1 = attrs['body'] elif (name == 'link2'): self._link2 = attrs['body'] elif (name == 'ext'): pass elif (name == 'amotor'): l1, l2 = self._getLinks() self._parseAMotor(self._world, l1, l2) elif (name == 'ball'): l1, l2 = self._getLinks() self._parseBallJoint(self._world, l1, l2) elif (name == 'fixed'): l1, l2 = self._getLinks() self._parseFixedJoint(self._world, l1, l2) elif (name == 'hinge'): l1, l2 = self._getLinks() self._parseHingeJoint(self._world, l1, l2) elif (name == 'hinge2'): l1, l2 = self._getLinks() self._parseHinge2Joint(self._world, l1, l2) elif (name == 'slider'): l1, l2 = self._getLinks() self._parseSliderJoint(self._world, l1, l2) elif (name == 'universal'): l1, l2 = self._getLinks() self._parseUniversalJoint(self._world, l1, l2) else: raise errors.ChildError('joint', name)
def start(name, attrs): if (name == 'anchor'): anchor[0] = self._parser.parseVector(attrs) elif (name == 'axis'): axes.append(attrs) else: raise errors.ChildError('hinge2', name)
def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'world'): world = World(nodeName, self) world.takeParser(self._parser) elif (name == 'ext'): pass else: raise errors.ChildError('xode', name)
def start(name, attrs): # The XODE specification allows anchor elements for AMotor but # there is no way to set the anchor of an AMotor. #if (name == 'anchor'): # anchor[0] = self._parser.parseVector(attrs) if (name == 'axis'): axes.append(attrs) else: raise errors.ChildError('amotor', name)
def start(name, attrs): if (name == 'vertices'): pass elif (name == 'triangles'): pass elif (name == 'v'): vertices.append(self._parser.parseVector(attrs)) elif (name == 't'): tri = int(attrs['ia'])-1, int(attrs['ib'])-1, int(attrs['ic'])-1 triangles.append(tri) else: raise errors.ChildError('trimesh', name)
def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'transform'): t = transform.Transform() t.takeParser(self._parser, self, attrs) elif (name == 'space'): space = Space(nodeName, self) space.takeParser(self._parser) elif (name == 'ext'): pass else: raise errors.ChildError('world', name)
def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'transform'): t = transform.Transform() t.takeParser(self._parser, self, attrs) else: self._applyTransform() if (name == 'torque'): self.getODEObject().setTorque(self._parser.parseVector(attrs)) elif (name == 'force'): self.getODEObject().setForce(self._parser.parseVector(attrs)) elif (name == 'finiteRotation'): mode = int(attrs['mode']) try: axis = (float(attrs['xaxis']), float(attrs['yaxis']), float(attrs['zaxis'])) except KeyError: raise errors.InvalidError('finiteRotation element must have' \ ' xaxis, yaxis and zaxis attributes') if (mode not in [0, 1]): raise errors.InvalidError('finiteRotation mode attribute must' \ ' be either 0 or 1.') self.getODEObject().setFiniteRotationMode(mode) self.getODEObject().setFiniteRotationAxis(axis) elif (name == 'linearVel'): self.getODEObject().setLinearVel(self._parser.parseVector(attrs)) elif (name == 'angularVel'): self.getODEObject().setAngularVel(self._parser.parseVector(attrs)) elif (name == 'mass'): self._mass = Mass(nodeName, self) self._mass.takeParser(self._parser) elif (name == 'joint'): j = joint.Joint(nodeName, self) j.takeParser(self._parser) elif (name == 'body'): b = Body(nodeName, self, attrs) b.takeParser(self._parser) elif (name == 'geom'): g = geom.Geom(nodeName, self) g.takeParser(self._parser) elif (name == 'transform'): # so it doesn't raise ChildError pass else: raise errors.ChildError('body', name)
def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'mass_struct'): pass elif (name == 'mass_shape'): self._parseMassShape(attrs) elif (name == 'transform'): # parse transform pass elif (name == 'adjust'): total = float(attrs['total']) self.getODEObject().adjust(total) elif (name == 'mass'): mass = Mass(nodeName, self) mass.takeParser(self._parser) else: raise errors.ChildError('mass', name)
def _startElement(self, name, attrs): nodeName = attrs.get('name', None) if (name == 'transform'): t = transform.Transform() t.takeParser(self._parser, self, attrs) self._transformed = True elif (name == 'box'): self._parseGeomBox(attrs) elif (name == 'cappedCylinder'): self._parseGeomCCylinder(attrs) elif (name == 'cone'): raise NotImplementedError() elif (name == 'cylinder'): raise NotImplementedError() elif (name == 'plane'): self._parseGeomPlane(attrs) elif (name == 'ray'): self._parseGeomRay(attrs) elif (name == 'sphere'): self._parseGeomSphere(attrs) elif (name == 'trimesh'): self._parseTriMesh(attrs) elif (name == 'geom'): g = Geom(nodeName, self) g.takeParser(self._parser) elif (name == 'body'): b = body.Body(nodeName, self, attrs) b.takeParser(self._parser) elif (name == 'joint'): j = joint.Joint(nodename, self) j.takeParser(self._parser) elif (name == 'jointgroup'): pass elif (name == 'ext'): pass else: raise errors.ChildError('geom', name)
def start(name, attrs): if (name == 'axis'): axes.append(attrs) else: raise errors.ChildError('slider', name)
def start(name, attrs): raise errors.ChildError('fixed', name)
def start(name, attrs): if (name == 'anchor'): anchor[0] = self._parser.parseVector(attrs) else: raise errors.ChildError('ball', name)
def start(name, attrs): if (name == 'ext'): pass else: raise errors.ChildError('ray', name)
def start(name, attrs): if (name == 'ext'): pass else: raise errors.ChildError('cappedCylinder', name)