1234567891011121314151617181920212223 |
- const createPatternBuilder = require('./createPatternBuilder');
- module.exports = generateCreateDragForceFunction;
- module.exports.generateCreateDragForceFunctionBody = generateCreateDragForceFunctionBody;
- function generateCreateDragForceFunction(dimension) {
- let code = generateCreateDragForceFunctionBody(dimension);
- return new Function('options', code);
- }
- function generateCreateDragForceFunctionBody(dimension) {
- let pattern = createPatternBuilder(dimension);
- let code = `
- if (!Number.isFinite(options.dragCoefficient)) throw new Error('dragCoefficient is not a finite number');
- return {
- update: function(body) {
- ${pattern('body.force.{var} -= options.dragCoefficient * body.velocity.{var};', {indent: 6})}
- }
- };
- `;
- return code;
- }
|