/** * Get the current support matrix */ public void getSuppMatrix(Matrix matrix) { matrix.set(mSuppMatrix); }
public void setZoom(float scaleX, float scaleY, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.setScale(scaleX, scaleY); }
/** * Zooms out to original size. * @param outputMatrix */ public void resetZoom(Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.postScale(1.0f, 1.0f, 0.0f, 0.0f); }
/** * Sets the scale factor to the specified values. x and y is pivot. * * @param scaleX * @param scaleY * @param x * @param y * @return */ public Matrix setZoom(float scaleX, float scaleY, float x, float y) { Matrix save = new Matrix(); save.set(mMatrixTouch); save.setScale(scaleX, scaleY, x, y); return save; }
public void zoom(float scaleX, float scaleY, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.postScale(scaleX, scaleY); }
public void zoomOut(float x, float y, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.postScale(0.7f, 0.7f, x, y); }
public void zoomIn(float x, float y, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.postScale(1.4f, 1.4f, x, y); }
public void zoom(float scaleX, float scaleY, float x, float y, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); outputMatrix.postScale(scaleX, scaleY, x, y); }
/** * call this method to refresh the graph with a given matrix * * @param newMatrix * @return */ public Matrix refresh(Matrix newMatrix, View chart, boolean invalidate) { mMatrixTouch.set(newMatrix); // make sure scale and translation are within their bounds limitTransAndScale(mMatrixTouch, mContentRect); if (invalidate) chart.invalidate(); newMatrix.set(mMatrixTouch); return newMatrix; }
/** * Saves the current Matrix state and the touch-start point. * * @param event */ private void saveTouchStart(MotionEvent event) { mSavedMatrix.set(mMatrix); mTouchStartPoint.x = event.getX(); mTouchStartPoint.y = event.getY(); mClosestDataSetToTouch = mChart.getDataSetByTouchPoint(event.getX(), event.getY()); }
private Matrix getDrawMatrix() { mDrawMatrix.set(mBaseMatrix); mDrawMatrix.postConcat(mSuppMatrix); return mDrawMatrix; }
public boolean setDisplayMatrix(Matrix finalMatrix) { if (finalMatrix == null) { throw new IllegalArgumentException("Matrix cannot be null"); } if (mImageView.getDrawable() == null) { return false; } mSuppMatrix.set(finalMatrix); checkAndDisplayMatrix(); return true; }
/** * Get the display matrix * * @param matrix target matrix to copy to */ public void getDisplayMatrix(Matrix matrix) { matrix.set(getDrawMatrix()); }
/** * Post-translates to the specified points. Output matrix allows for caching objects. * * @param transformedPts * @return */ public void translate(final float[] transformedPts, Matrix outputMatrix) { outputMatrix.reset(); outputMatrix.set(mMatrixTouch); final float x = transformedPts[0] - offsetLeft(); final float y = transformedPts[1] - offsetTop(); outputMatrix.postTranslate(-x, -y); }
public Matrix getValueToPixelMatrix() { mMBuffer1.set(mMatrixValueToPx); mMBuffer1.postConcat(mViewPortHandler.mMatrixTouch); mMBuffer1.postConcat(mMatrixOffset); return mMBuffer1; }
@Override public void getBounds(RectF outBounds, Matrix parentMatrix, boolean applyParents) { matrix.set(parentMatrix); if (transformAnimation != null) { matrix.preConcat(transformAnimation.getMatrix()); } rect.set(0, 0, 0, 0); for (int i = contents.size() - 1; i >= 0; i--) { Content content = contents.get(i); if (content instanceof DrawingContent) { ((DrawingContent) content).getBounds(rect, matrix, applyParents); outBounds.union(rect); } } }
/** * Centers the viewport around the specified position (x-index and y-value) * in the chart. Centering the viewport outside the bounds of the chart is * not possible. Makes most sense in combination with the * setScaleMinima(...) method. * * @param transformedPts the position to center view viewport to * @param view * @return save */ public void centerViewPort(final float[] transformedPts, final View view) { Matrix save = mCenterViewPortMatrixBuffer; save.reset(); save.set(mMatrixTouch); final float x = transformedPts[0] - offsetLeft(); final float y = transformedPts[1] - offsetTop(); save.postTranslate(-x, -y); refresh(save, view, true); }
@Override public Path getPath() { Path contentPath = contentGroup.getPath(); path.reset(); float copies = this.copies.getValue(); float offset = this.offset.getValue(); for (int i = (int) copies - 1; i >= 0; i--) { matrix.set(transform.getMatrixForRepeater(i + offset)); path.addPath(contentPath, matrix); } return path; }
@CallSuper @Override public void getBounds( RectF outBounds, Matrix parentMatrix, boolean applyParents) { rect.set(0, 0, 0, 0); buildParentLayerListIfNeeded(); boundsMatrix.set(parentMatrix); if (applyParents) { if (parentLayers != null) { for (int i = parentLayers.size() - 1; i >= 0; i--) { boundsMatrix.preConcat(parentLayers.get(i).transform.getMatrix()); } } else if (parentLayer != null) { boundsMatrix.preConcat(parentLayer.transform.getMatrix()); } } boundsMatrix.preConcat(transform.getMatrix()); }
@Override public void draw(Canvas canvas, Matrix parentMatrix, int alpha) { float copies = this.copies.getValue(); float offset = this.offset.getValue(); //noinspection ConstantConditions float startOpacity = this.transform.getStartOpacity().getValue() / 100f; //noinspection ConstantConditions float endOpacity = this.transform.getEndOpacity().getValue() / 100f; for (int i = (int) copies - 1; i >= 0; i--) { matrix.set(parentMatrix); matrix.preConcat(transform.getMatrixForRepeater(i + offset)); float newAlpha = alpha * MiscUtils.lerp(startOpacity, endOpacity, i / copies); contentGroup.draw(canvas, matrix, (int) newAlpha); } }