public void ParseLink() { string name = "name"; Geometry geometry1 = new Geometry(new Sphere(1)); Geometry geometry2 = new Geometry(new Box(new SizeAttribute(1, 2, 3))); Visual visual1 = new Visual.Builder(geometry1).Build(); Visual visual2 = new Visual.Builder(geometry2).Build(); Collision collision = new Collision.Builder().SetGeometry(geometry1).Build(); Inertial inertial = new Inertial(new Mass(1), new Inertia(1, 2, 3, 4, 5, 6)); string format = @"<link name='{0}'> <visual><geometry><sphere radius='{1}'/></geometry></visual> <visual><geometry><box size='{2} {3} {4}'/></geometry></visual> <collision><geometry><sphere radius='{5}'/></geometry></collision> <inertial><mass value='{6}'/><inertia ixx='{7}' ixy='{8}' ixz='{9}' iyy='{10}' iyz='{11}' izz='{12}'/></inertial> </link>"; string xml = String.Format(format, name, visual1.Geometry.Sphere.Radius, visual2.Geometry.Box.Size.Length, visual2.Geometry.Box.Size.Width, visual2.Geometry.Box.Size.Height, collision.Geometry.Sphere.Radius, inertial.Mass.Value, inertial.Inertia.Ixx, inertial.Inertia.Ixy, inertial.Inertia.Ixz, inertial.Inertia.Iyy, inertial.Inertia.Iyz, inertial.Inertia.Izz); this.xmlDoc.Load(XmlReader.Create(new StringReader(xml))); Link link = this.parser.Parse(this.xmlDoc.DocumentElement); Assert.AreEqual(name, link.Name); Assert.AreEqual(2, link.Visual.Count); Assert.AreEqual(visual1, link.Visual[0]); Assert.AreEqual(visual2, link.Visual[1]); Assert.AreEqual(1, link.Collision.Count); Assert.AreEqual(collision, link.Collision[0]); Assert.AreEqual(inertial, link.Inertial); }
public void ConstructCollisionNullName() { Geometry geometry = new Geometry(new Sphere(1)); Collision collision = new Collision.Builder(null).SetGeometry(geometry).Build(); Assert.IsNull(collision.Name); Assert.AreEqual(geometry, collision.Geometry); Assert.AreEqual(new Origin(), collision.Origin); }
public void ConstructCollision() { String name = "name"; Origin origin = new Origin(); Geometry geometry = new Geometry(new Sphere(1)); Collision collision = new Collision.Builder(name).SetOrigin(origin).SetGeometry(geometry).Build(); Assert.AreEqual(name, collision.Name); Assert.AreEqual(origin, collision.Origin); Assert.AreEqual(geometry, collision.Geometry); }
public void EqualsAndHash() { Collision collision = new Collision.Builder().SetGeometry(new Geometry(new Sphere(1))).Build(); Collision same = new Collision.Builder().SetGeometry(new Geometry(new Sphere(1))).Build(); Collision diff = new Collision.Builder().SetOrigin(new Origin.Builder().SetXyz(new XyzAttribute(1, 2, 3)).Build()) .SetGeometry(new Geometry(new Sphere(1))).Build(); Assert.IsTrue(collision.Equals(collision)); Assert.IsFalse(collision.Equals(null)); Assert.IsTrue(collision.Equals(same)); Assert.IsTrue(same.Equals(collision)); Assert.IsFalse(collision.Equals(diff)); Assert.AreEqual(collision.GetHashCode(), same.GetHashCode()); Assert.AreNotEqual(collision.GetHashCode(), diff.GetHashCode()); }
/// <summary> /// Parses a URDF <collision> element from XML. /// </summary> /// <param name="node">The XML node of a <collision> element</param> /// <returns>A Collision object parsed from the XML</returns> public override Collision Parse(XmlNode node) { ValidateXmlNode(node); XmlAttribute nameAttribute = GetAttributeFromNode(node, UrdfSchema.NAME_ATTRIBUTE_NAME); XmlElement originElement = GetElementFromNode(node, UrdfSchema.ORIGIN_ELEMENT_NAME); XmlElement geometryElement = GetElementFromNode(node, UrdfSchema.GEOMETRY_ELEMENT_NAME); Collision.Builder builder; if (nameAttribute != null) { builder = new Collision.Builder(nameAttribute.Value); } else { builder = new Collision.Builder(); } if (originElement != null) { builder.SetOrigin(this.originParser.Parse(originElement)); } if (geometryElement != null) { builder.SetGeometry(this.geometryParser.Parse(geometryElement)); } else { LogMalformedAttribute(UrdfSchema.GEOMETRY_ELEMENT_NAME); builder.SetGeometry(DEFAULT_GEOMETRY); } return(builder.Build()); }
public void ConstructCollisionNullOrigin() { Collision collision = new Collision.Builder().SetOrigin(null).Build(); }
public void ConstructCollisionNullGeometry() { Collision collision = new Collision.Builder().SetGeometry(null).Build(); }
public void ConstructCollisionNoGeometry() { Collision collision = new Collision.Builder().Build(); }