anchor.diff:        this.upperAngle: 0.0,
         this.enableLimit: false,
         PhysicsJointBreakCallback breakCallback,
  -      double breakingForce
  +      double breakingForce,
  +      bool enableMotor: false,
  +      double motorSpeed: 0.0,
  +      double maxMotorTorque: 0.0
       }) : super(bodyA, bodyB, breakingForce, breakCallback) {
  +    _enableMotor = enableMotor;
  +    _motorSpeed = motorSpeed;
  +    _maxMotorTorque = maxMotorTorque;
       _completeCreation();
     }
   
  
positive.code:   final double lowerAngle;
    final double upperAngle;
    final bool enableLimit;
  
    box2d.Joint _createB2Joint(PhysicsWorld physicsNode) {
      // Create Joint Definition
  
negative.code:     PhysicsBody bodyB,
      this.axis, {
        double breakingForce,
        PhysicsJointBreakCallback breakCallback,
        bool enableMotor: false,
        double motorSpeed: 0.0,
        double maxMotorForce: 0.0
      }
    ) : super(bodyA, bodyB, breakingForce, breakCallback) {
      _enableMotor = enableMotor;
      _motorSpeed = motorSpeed;
      _maxMotorForce = maxMotorForce;
      _completeCreation();
    }
  
    final Offset axis;
  
    bool _enableMotor;
  
    bool get enableMotor => _enableMotor;
  
    set enableMotor(bool enableMotor) {
      _enableMotor = enableMotor;
      if (_joint != null) {
        box2d.PrismaticJoint prismaticJoint = _joint;
        prismaticJoint.enableMotor(enableMotor);
      }
    }
  
    double _motorSpeed;
  
    double get motorSpeed => _motorSpeed;
  
    set motorSpeed(double motorSpeed) {
      _motorSpeed = motorSpeed;
      if (_joint != null) {
        box2d.PrismaticJoint prismaticJoint = _joint;
        prismaticJoint.setMotorSpeed(motorSpeed / _physicsNode.b2WorldToNodeConversionFactor);
      }
    }
  
    double _maxMotorForce;
  
    double get maxMotorForce => _maxMotorForce;
  
    set maxMotorForce(double maxMotorForce) {
      _maxMotorForce = maxMotorForce;
      if (_joint != null) {
        box2d.PrismaticJoint prismaticJoint = _joint;
        prismaticJoint.setMaxMotorForce(maxMotorForce / _physicsNode.b2WorldToNodeConversionFactor);
      }
    }
  
    box2d.Joint _createB2Joint(PhysicsWorld physicsNode) {
      box2d.PrismaticJointDef b2Def = new box2d.PrismaticJointDef();
      b2Def.initialize(bodyA._body, bodyB._body, bodyA._body.position, new Vector2(axis.dx, axis.dy));
      b2Def.enableMotor = _enableMotor;
      b2Def.motorSpeed = _motorSpeed;
      b2Def.maxMotorForce = _maxMotorForce;
  
      return physicsNode.b2World.createJoint(b2Def);
    }
  }
  