docs: private void performDragOrPinch() {
  		// Don't do anything if we're not dragging anything
  		if (selectedObject == null)
  			return;
  
  		// Calc new position of dragged object
  		float currScale = !mCurrXform.updateScale ? 1.0f : mCurrXform.scale == 0.0f ? 1.0f : mCurrXform.scale;
  		extractCurrPtInfo();
  		float newPosX = mCurrPtX - startPosX * currScale;
  		float newPosY = mCurrPtY - startPosY * currScale;
  		float newScale = startScaleOverPinchDiam * mCurrPtDiam;
  		float newScaleX = startScaleXOverPinchWidth * mCurrPtWidth;
  		float newScaleY = startScaleYOverPinchHeight * mCurrPtHeight;
  		float newAngle = startAngleMinusPinchAngle + mCurrPtAng;
  
  		// Set the new obj coords, scale, and angle as appropriate (notifying the subclass of the change).
  		mCurrXform.set(newPosX, newPosY, newScale, newScaleX, newScaleY, newAngle);
  
  		boolean success = objectCanvas.setPositionAndScale(selectedObject, mCurrXform, mCurrPt);
  		if (!success)
  			; // If we could't set those params, do nothing currently
  	}