Skip to content

Commit c47037d

Browse files
authored
fix cached working path (#301)
* fix cached working path * apply suggestions * update tests * remove unused import --------- Co-authored-by: shaoyu <shaoyu>
1 parent 4cad1dc commit c47037d

8 files changed

+138
-57
lines changed

javascript/src/URDFLoader.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,7 @@ class URDFLoader {
112112
})
113113
.then(data => {
114114

115-
if (this.workingPath === '') {
116-
117-
this.workingPath = workingPath;
118-
119-
}
120-
121-
const model = this.parse(data);
115+
const model = this.parse(data, this.workingPath || workingPath);
122116
onComplete(model);
123117
manager.itemEnd(urdfPath);
124118

@@ -141,13 +135,12 @@ class URDFLoader {
141135

142136
}
143137

144-
parse(content) {
138+
parse(content, workingPath = this.workingPath) {
145139

146140
const packages = this.packages;
147141
const loadMeshCb = this.loadMeshCb;
148142
const parseVisual = this.parseVisual;
149143
const parseCollision = this.parseCollision;
150-
const workingPath = this.workingPath;
151144
const manager = this.manager;
152145
const linkMap = {};
153146
const jointMap = {};

javascript/test/URDFLoader.test.js

+27
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,33 @@ describe('Options', () => {
204204

205205
});
206206

207+
it('should use correct workingPath to load meshes', async() => {
208+
209+
const loader = new URDFLoader();
210+
211+
loader.workingPath = 'https://raw.githubusercontent.com/mock-working-path';
212+
loader.loadMeshCb = (path, manager, done) => {
213+
214+
const mesh = new Mesh();
215+
expect(path).toContain('https://raw.githubusercontent.com/mock-working-path');
216+
done(mesh);
217+
218+
};
219+
await loader.loadAsync('https://raw.githubusercontent.com/gkjohnson/urdf-loaders/master/urdf/TriATHLETE_Climbing/urdf/TriATHLETE.URDF');
220+
221+
loader.workingPath = '';
222+
loader.loadMeshCb = (path, manager, done) => {
223+
224+
const mesh = new Mesh();
225+
expect(path).toContain('https://raw.githubusercontent.com/gkjohnson/urdf-loaders/master/urdf/TriATHLETE_Climbing/urdf');
226+
done(mesh);
227+
228+
};
229+
await loader.loadAsync('https://raw.githubusercontent.com/gkjohnson/urdf-loaders/master/urdf/TriATHLETE_Climbing/urdf/TriATHLETE.URDF');
230+
231+
expect(loader.workingPath).toBe('');
232+
});
233+
207234
});
208235

209236
describe('packages', () => {

javascript/umd/URDFLoader.js

+89-24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/umd/URDFLoader.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/umd/urdf-manipulator-element.js

+5-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

javascript/umd/urdf-manipulator-element.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)