diff --git a/src/urdf/UrdfLink.js b/src/urdf/UrdfLink.js index bb99f9dd5..849acfb0b 100644 --- a/src/urdf/UrdfLink.js +++ b/src/urdf/UrdfLink.js @@ -14,11 +14,13 @@ var UrdfVisual = require('./UrdfVisual'); */ function UrdfLink(options) { this.name = options.xml.getAttribute('name'); + this.visuals = []; var visuals = options.xml.getElementsByTagName('visual'); - if (visuals.length > 0) { - this.visual = new UrdfVisual({ - xml : visuals[0] - }); + + for( var i=0; i'+ ' '+ ' '+ + ' '+ // link with referenced material and multiple visuals + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ + ' '+ ' '+ ' '+ ' '+ @@ -50,6 +64,9 @@ var sample_urdf = function (){ ' '+ ' '+ ' '+ + ' '+ + ' '+ + ' '+ ''; } @@ -71,18 +88,27 @@ describe('URDF', function() { }); // Check all the visual elements - expect(urdfModel.links['link1'].visual.geometry.radius).to.equal(1.0); - expect(urdfModel.links['link2'].visual.geometry.dimension.x).to.equal(0.5); - expect(urdfModel.links['link2'].visual.geometry.dimension.y).to.equal(0.5); - expect(urdfModel.links['link2'].visual.geometry.dimension.z).to.equal(0.5); - expect(urdfModel.links['link3'].visual.geometry.length).to.equal(2.0); - expect(urdfModel.links['link3'].visual.geometry.radius).to.equal(0.2); + expect(urdfModel.links['link1'].visuals.length).to.equal(1); + expect(urdfModel.links['link1'].visuals[0].geometry.radius).to.equal(1.0); + expect(urdfModel.links['link2'].visuals[0].geometry.dimension.x).to.equal(0.5); + expect(urdfModel.links['link2'].visuals[0].geometry.dimension.y).to.equal(0.5); + expect(urdfModel.links['link2'].visuals[0].geometry.dimension.z).to.equal(0.5); + expect(urdfModel.links['link3'].visuals[0].geometry.length).to.equal(2.0); + expect(urdfModel.links['link3'].visuals[0].geometry.radius).to.equal(0.2); + + expect(urdfModel.links['link4'].visuals.length).to.equal(1); + expect(urdfModel.links['link4'].visuals[0].material.name).to.equal('red'); + expect(urdfModel.links['link4'].visuals[0].material.color.r).to.equal(1.0); + expect(urdfModel.links['link4'].visuals[0].material.color.g).to.equal(0); + expect(urdfModel.links['link4'].visuals[0].material.color.b).to.equal(0); + expect(urdfModel.links['link4'].visuals[0].material.color.a).to.equal(1.0); - expect(urdfModel.links['link4'].visual.material.name).to.equal('red'); - expect(urdfModel.links['link4'].visual.material.color.r).to.equal(1.0); - expect(urdfModel.links['link4'].visual.material.color.g).to.equal(0); - expect(urdfModel.links['link4'].visual.material.color.b).to.equal(0); - expect(urdfModel.links['link4'].visual.material.color.a).to.equal(1.0); + expect(urdfModel.links['link5'].visuals.length).to.equal(2); + expect(urdfModel.links['link5'].visuals[0].material.name).to.equal('blue'); + expect(urdfModel.links['link5'].visuals[0].material.color.r).to.equal(0.0); + expect(urdfModel.links['link5'].visuals[0].material.color.g).to.equal(0.0); + expect(urdfModel.links['link5'].visuals[0].material.color.b).to.equal(1.0); + expect(urdfModel.links['link5'].visuals[0].material.color.a).to.equal(1.0); }); it('is ignorant to the xml node', function(){