1// Signature format: 4.0
2package androidx.ink.geometry {
3
4  public abstract class AffineTransform {
5    method public final androidx.ink.geometry.MutableParallelogram applyTransform(androidx.ink.geometry.Box box, androidx.ink.geometry.MutableParallelogram outParallelogram);
6    method public final androidx.ink.geometry.MutableParallelogram applyTransform(androidx.ink.geometry.Parallelogram parallelogram, androidx.ink.geometry.MutableParallelogram outParallelogram);
7    method public final androidx.ink.geometry.MutableSegment applyTransform(androidx.ink.geometry.Segment segment, androidx.ink.geometry.MutableSegment outSegment);
8    method public final androidx.ink.geometry.MutableTriangle applyTransform(androidx.ink.geometry.Triangle triangle, androidx.ink.geometry.MutableTriangle outTriangle);
9    method public final androidx.ink.geometry.MutableVec applyTransform(androidx.ink.geometry.Vec point, androidx.ink.geometry.MutableVec outVec);
10    method public final androidx.ink.geometry.MutableAffineTransform computeInverse(androidx.ink.geometry.MutableAffineTransform outAffineTransform);
11    method @Size(min=6L) public final float[] getValues();
12    method @Size(min=6L) public final float[] getValues(optional @Size(min=6L) float[] outArray);
13    field public static final androidx.ink.geometry.AffineTransform.Companion Companion;
14    field public static final androidx.ink.geometry.ImmutableAffineTransform IDENTITY;
15  }
16
17  public static final class AffineTransform.Companion {
18    property public androidx.ink.geometry.ImmutableAffineTransform IDENTITY;
19  }
20
21  public final class Angle {
22    method @androidx.ink.geometry.AngleRadiansFloat public static float degreesToRadians(@androidx.ink.geometry.AngleDegreesFloat float degrees);
23    method @FloatRange(from=0.0, to=androidx.ink.geometry.Angle.FULL_TURN_RADIANS_DOUBLE) @androidx.ink.geometry.AngleRadiansFloat public static float normalized(@androidx.ink.geometry.AngleRadiansFloat float radians);
24    method @FloatRange(from=-3.141592653589793, to=androidx.ink.geometry.Angle.HALF_TURN_RADIANS_DOUBLE) @androidx.ink.geometry.AngleRadiansFloat public static float normalizedAboutZero(@androidx.ink.geometry.AngleRadiansFloat float radians);
25    method @androidx.ink.geometry.AngleDegreesFloat public static float radiansToDegrees(@androidx.ink.geometry.AngleRadiansFloat float radians);
26    property @androidx.ink.geometry.AngleRadiansFloat public float FULL_TURN_RADIANS;
27    property @androidx.ink.geometry.AngleRadiansFloat public float HALF_TURN_RADIANS;
28    property @androidx.ink.geometry.AngleRadiansFloat public float QUARTER_TURN_RADIANS;
29    property @androidx.ink.geometry.AngleRadiansFloat public float ZERO;
30    field @androidx.ink.geometry.AngleRadiansFloat public static final float FULL_TURN_RADIANS;
31    field @androidx.ink.geometry.AngleRadiansFloat public static final float HALF_TURN_RADIANS;
32    field public static final androidx.ink.geometry.Angle INSTANCE;
33    field @androidx.ink.geometry.AngleRadiansFloat public static final float QUARTER_TURN_RADIANS;
34    field @androidx.ink.geometry.AngleRadiansFloat public static final float ZERO;
35  }
36
37  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER, kotlin.annotation.AnnotationTarget.LOCAL_VARIABLE, kotlin.annotation.AnnotationTarget.FIELD}) public @interface AngleDegreesFloat {
38  }
39
40  @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.SOURCE) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.VALUE_PARAMETER, kotlin.annotation.AnnotationTarget.FUNCTION, kotlin.annotation.AnnotationTarget.PROPERTY_GETTER, kotlin.annotation.AnnotationTarget.PROPERTY_SETTER, kotlin.annotation.AnnotationTarget.LOCAL_VARIABLE, kotlin.annotation.AnnotationTarget.FIELD}) public @interface AngleRadiansFloat {
41  }
42
43  public abstract class Box {
44    method public final androidx.ink.geometry.MutableVec computeCenter(androidx.ink.geometry.MutableVec outVec);
45    method public final void computeCorners(androidx.ink.geometry.MutableVec outVecXMinYMin, androidx.ink.geometry.MutableVec outVecXMaxYMin, androidx.ink.geometry.MutableVec outVecXMaxYMax, androidx.ink.geometry.MutableVec outVecXMinYMax);
46    method public final operator boolean contains(androidx.ink.geometry.Box otherBox);
47    method public final operator boolean contains(androidx.ink.geometry.Vec point);
48    method @FloatRange(from=0.0) public final float getHeight();
49    method @FloatRange(from=0.0) public final float getWidth();
50    method public abstract float getXMax();
51    method public abstract float getXMin();
52    method public abstract float getYMax();
53    method public abstract float getYMin();
54    method public final boolean isAlmostEqual(androidx.ink.geometry.Box other, @FloatRange(from=0.0) float tolerance);
55    property @FloatRange(from=0.0) public final float height;
56    property @FloatRange(from=0.0) public final float width;
57    property public abstract float xMax;
58    property public abstract float xMin;
59    property public abstract float yMax;
60    property public abstract float yMin;
61    field public static final androidx.ink.geometry.Box.Companion Companion;
62  }
63
64  public static final class Box.Companion {
65  }
66
67  public final class BoxAccumulator {
68    ctor public BoxAccumulator();
69    ctor public BoxAccumulator(androidx.ink.geometry.Box box);
70    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.Box? box);
71    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.BoxAccumulator? other);
72    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.Parallelogram parallelogram);
73    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.PartitionedMesh mesh);
74    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.Segment segment);
75    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.Triangle triangle);
76    method public androidx.ink.geometry.BoxAccumulator add(androidx.ink.geometry.Vec point);
77    method public androidx.ink.geometry.Box? getBox();
78    method public boolean isAlmostEqual(androidx.ink.geometry.BoxAccumulator other, @FloatRange(from=0.0) float tolerance);
79    method public boolean isEmpty();
80    method public androidx.ink.geometry.BoxAccumulator populateFrom(androidx.ink.geometry.BoxAccumulator input);
81    method public androidx.ink.geometry.BoxAccumulator reset();
82    property public androidx.ink.geometry.Box? box;
83  }
84
85  public final class ImmutableAffineTransform extends androidx.ink.geometry.AffineTransform {
86    ctor public ImmutableAffineTransform(float m00, float m10, float m20, float m01, float m11, float m21);
87    ctor public ImmutableAffineTransform(@Size(min=6L) float[] values);
88    method public static androidx.ink.geometry.ImmutableAffineTransform scale(float scaleFactor);
89    method public static androidx.ink.geometry.ImmutableAffineTransform scale(float xScaleFactor, float yScaleFactor);
90    method public static androidx.ink.geometry.ImmutableAffineTransform scaleX(float scaleFactor);
91    method public static androidx.ink.geometry.ImmutableAffineTransform scaleY(float scaleFactor);
92    method public static androidx.ink.geometry.ImmutableAffineTransform translate(androidx.ink.geometry.Vec offset);
93    field public static final androidx.ink.geometry.ImmutableAffineTransform.Companion Companion;
94  }
95
96  public static final class ImmutableAffineTransform.Companion {
97    method public androidx.ink.geometry.ImmutableAffineTransform scale(float scaleFactor);
98    method public androidx.ink.geometry.ImmutableAffineTransform scale(float xScaleFactor, float yScaleFactor);
99    method public androidx.ink.geometry.ImmutableAffineTransform scaleX(float scaleFactor);
100    method public androidx.ink.geometry.ImmutableAffineTransform scaleY(float scaleFactor);
101    method public androidx.ink.geometry.ImmutableAffineTransform translate(androidx.ink.geometry.Vec offset);
102  }
103
104  public final class ImmutableBox extends androidx.ink.geometry.Box {
105    method public static androidx.ink.geometry.ImmutableBox fromCenterAndDimensions(androidx.ink.geometry.Vec center, @FloatRange(from=0.0) float width, @FloatRange(from=0.0) float height);
106    method public static androidx.ink.geometry.ImmutableBox fromTwoPoints(androidx.ink.geometry.Vec point1, androidx.ink.geometry.Vec point2);
107    method public float getXMax();
108    method public float getXMin();
109    method public float getYMax();
110    method public float getYMin();
111    property public float xMax;
112    property public float xMin;
113    property public float yMax;
114    property public float yMin;
115    field public static final androidx.ink.geometry.ImmutableBox.Companion Companion;
116  }
117
118  public static final class ImmutableBox.Companion {
119    method public androidx.ink.geometry.ImmutableBox fromCenterAndDimensions(androidx.ink.geometry.Vec center, @FloatRange(from=0.0) float width, @FloatRange(from=0.0) float height);
120    method public androidx.ink.geometry.ImmutableBox fromTwoPoints(androidx.ink.geometry.Vec point1, androidx.ink.geometry.Vec point2);
121  }
122
123  public final class ImmutableParallelogram extends androidx.ink.geometry.Parallelogram {
124    method public static androidx.ink.geometry.ImmutableParallelogram fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height);
125    method public static androidx.ink.geometry.ImmutableParallelogram fromCenterDimensionsAndRotation(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation);
126    method public static androidx.ink.geometry.ImmutableParallelogram fromCenterDimensionsRotationAndShear(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation, float shearFactor);
127    method public androidx.ink.geometry.ImmutableVec getCenter();
128    method public float getHeight();
129    method public float getRotation();
130    method public float getShearFactor();
131    method public float getWidth();
132    property public androidx.ink.geometry.ImmutableVec center;
133    property public float height;
134    property @androidx.ink.geometry.AngleRadiansFloat public float rotation;
135    property public float shearFactor;
136    property public float width;
137    field public static final androidx.ink.geometry.ImmutableParallelogram.Companion Companion;
138  }
139
140  public static final class ImmutableParallelogram.Companion {
141    method public androidx.ink.geometry.ImmutableParallelogram fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height);
142    method public androidx.ink.geometry.ImmutableParallelogram fromCenterDimensionsAndRotation(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation);
143    method public androidx.ink.geometry.ImmutableParallelogram fromCenterDimensionsRotationAndShear(androidx.ink.geometry.ImmutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation, float shearFactor);
144  }
145
146  public final class ImmutableSegment extends androidx.ink.geometry.Segment {
147    ctor public ImmutableSegment(androidx.ink.geometry.Vec start, androidx.ink.geometry.Vec end);
148    method public androidx.ink.geometry.Vec getEnd();
149    method public androidx.ink.geometry.Vec getStart();
150    property public androidx.ink.geometry.Vec end;
151    property public androidx.ink.geometry.Vec start;
152  }
153
154  public final class ImmutableTriangle extends androidx.ink.geometry.Triangle {
155    ctor public ImmutableTriangle(androidx.ink.geometry.Vec p0, androidx.ink.geometry.Vec p1, androidx.ink.geometry.Vec p2);
156    method public androidx.ink.geometry.Vec getP0();
157    method public androidx.ink.geometry.Vec getP1();
158    method public androidx.ink.geometry.Vec getP2();
159    property public androidx.ink.geometry.Vec p0;
160    property public androidx.ink.geometry.Vec p1;
161    property public androidx.ink.geometry.Vec p2;
162  }
163
164  public final class ImmutableVec extends androidx.ink.geometry.Vec {
165    ctor public ImmutableVec(float x, float y);
166    method public static androidx.ink.geometry.ImmutableVec fromDirectionAndMagnitude(@androidx.ink.geometry.AngleRadiansFloat float direction, float magnitude);
167    method public float getX();
168    method public float getY();
169    property public float x;
170    property public float y;
171    field public static final androidx.ink.geometry.ImmutableVec.Companion Companion;
172  }
173
174  public static final class ImmutableVec.Companion {
175    method public androidx.ink.geometry.ImmutableVec fromDirectionAndMagnitude(@androidx.ink.geometry.AngleRadiansFloat float direction, float magnitude);
176  }
177
178  public final class Intersection {
179    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.Box other);
180    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.Parallelogram parallelogram);
181    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.PartitionedMesh mesh, androidx.ink.geometry.AffineTransform meshToBox);
182    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.Segment segment);
183    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.Triangle triangle);
184    method public static boolean intersects(androidx.ink.geometry.Box, androidx.ink.geometry.Vec point);
185    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.Box box);
186    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.Parallelogram other);
187    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.PartitionedMesh mesh, androidx.ink.geometry.AffineTransform meshToParallelogram);
188    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.Segment segment);
189    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.Triangle triangle);
190    method public static boolean intersects(androidx.ink.geometry.Parallelogram, androidx.ink.geometry.Vec point);
191    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.Box box, androidx.ink.geometry.AffineTransform meshToBox);
192    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.Parallelogram parallelogram, androidx.ink.geometry.AffineTransform meshToParallelogram);
193    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.PartitionedMesh other, androidx.ink.geometry.AffineTransform thisToCommonTransForm, androidx.ink.geometry.AffineTransform otherToCommonTransform);
194    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.Segment segment, androidx.ink.geometry.AffineTransform meshToSegment);
195    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.Triangle triangle, androidx.ink.geometry.AffineTransform meshToTriangle);
196    method public static boolean intersects(androidx.ink.geometry.PartitionedMesh, androidx.ink.geometry.Vec point, androidx.ink.geometry.AffineTransform meshToPoint);
197    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.Box box);
198    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.Parallelogram parallelogram);
199    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.PartitionedMesh mesh, androidx.ink.geometry.AffineTransform meshToSegment);
200    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.Segment other);
201    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.Triangle triangle);
202    method public static boolean intersects(androidx.ink.geometry.Segment, androidx.ink.geometry.Vec point);
203    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.Box box);
204    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.Parallelogram parallelogram);
205    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.PartitionedMesh mesh, androidx.ink.geometry.AffineTransform meshToTriangle);
206    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.Segment segment);
207    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.Triangle other);
208    method public static boolean intersects(androidx.ink.geometry.Triangle, androidx.ink.geometry.Vec point);
209    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.Box box);
210    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.Parallelogram parallelogram);
211    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.PartitionedMesh mesh, androidx.ink.geometry.AffineTransform meshToPoint);
212    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.Segment segment);
213    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.Triangle triangle);
214    method public static boolean intersects(androidx.ink.geometry.Vec, androidx.ink.geometry.Vec other);
215    field public static final androidx.ink.geometry.Intersection INSTANCE;
216  }
217
218  public final class MutableAffineTransform extends androidx.ink.geometry.AffineTransform {
219    ctor public MutableAffineTransform();
220    method public void setValues(float m00, float m10, float m20, float m01, float m11, float m21);
221    method public void setValues(@Size(min=6L) float[] values);
222  }
223
224  public final class MutableBox extends androidx.ink.geometry.Box {
225    ctor public MutableBox();
226    method public float getXMax();
227    method public float getXMin();
228    method public float getYMax();
229    method public float getYMin();
230    method public androidx.ink.geometry.MutableBox populateFrom(androidx.ink.geometry.Box input);
231    method public androidx.ink.geometry.MutableBox populateFromCenterAndDimensions(androidx.ink.geometry.Vec center, @FloatRange(from=0.0) float width, @FloatRange(from=0.0) float height);
232    method public androidx.ink.geometry.MutableBox populateFromTwoPoints(androidx.ink.geometry.Vec point1, androidx.ink.geometry.Vec point2);
233    method public androidx.ink.geometry.MutableBox setXBounds(float x1, float x2);
234    method public androidx.ink.geometry.MutableBox setYBounds(float y1, float y2);
235    property public float xMax;
236    property public float xMin;
237    property public float yMax;
238    property public float yMin;
239  }
240
241  public final class MutableParallelogram extends androidx.ink.geometry.Parallelogram {
242    ctor public MutableParallelogram();
243    method public static androidx.ink.geometry.MutableParallelogram fromCenterAndDimensions(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height);
244    method public static androidx.ink.geometry.MutableParallelogram fromCenterDimensionsAndRotation(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation);
245    method public static androidx.ink.geometry.MutableParallelogram fromCenterDimensionsRotationAndShear(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation, float shearFactor);
246    method public androidx.ink.geometry.MutableVec getCenter();
247    method public float getHeight();
248    method @androidx.ink.geometry.AngleRadiansFloat public float getRotation();
249    method public float getShearFactor();
250    method @FloatRange(from=0.0) public float getWidth();
251    method public void setCenter(androidx.ink.geometry.MutableVec);
252    method public void setHeight(float);
253    method public void setRotation(@androidx.ink.geometry.AngleRadiansFloat float);
254    method public void setShearFactor(float);
255    method public void setWidth(@FloatRange(from=0.0) float);
256    property public androidx.ink.geometry.MutableVec center;
257    property public float height;
258    property @androidx.ink.geometry.AngleRadiansFloat public float rotation;
259    property public float shearFactor;
260    property @FloatRange(from=0.0) public float width;
261    field public static final androidx.ink.geometry.MutableParallelogram.Companion Companion;
262  }
263
264  public static final class MutableParallelogram.Companion {
265    method public androidx.ink.geometry.MutableParallelogram fromCenterAndDimensions(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height);
266    method public androidx.ink.geometry.MutableParallelogram fromCenterDimensionsAndRotation(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation);
267    method public androidx.ink.geometry.MutableParallelogram fromCenterDimensionsRotationAndShear(androidx.ink.geometry.MutableVec center, @FloatRange(from=0.0) float width, float height, @androidx.ink.geometry.AngleRadiansFloat float rotation, float shearFactor);
268  }
269
270  public final class MutableSegment extends androidx.ink.geometry.Segment {
271    ctor public MutableSegment();
272    ctor public MutableSegment(androidx.ink.geometry.MutableVec start, androidx.ink.geometry.MutableVec end);
273    method public androidx.ink.geometry.MutableVec getEnd();
274    method public androidx.ink.geometry.MutableVec getStart();
275    method public androidx.ink.geometry.MutableSegment populateFrom(androidx.ink.geometry.Segment input);
276    method public void setEnd(androidx.ink.geometry.MutableVec);
277    method public void setStart(androidx.ink.geometry.MutableVec);
278    property public androidx.ink.geometry.MutableVec end;
279    property public androidx.ink.geometry.MutableVec start;
280  }
281
282  public final class MutableTriangle extends androidx.ink.geometry.Triangle {
283    ctor public MutableTriangle();
284    ctor public MutableTriangle(androidx.ink.geometry.MutableVec p0, androidx.ink.geometry.MutableVec p1, androidx.ink.geometry.MutableVec p2);
285    method public androidx.ink.geometry.MutableVec getP0();
286    method public androidx.ink.geometry.MutableVec getP1();
287    method public androidx.ink.geometry.MutableVec getP2();
288    method public androidx.ink.geometry.MutableTriangle populateFrom(androidx.ink.geometry.Triangle input);
289    method public void setP0(androidx.ink.geometry.MutableVec);
290    method public void setP1(androidx.ink.geometry.MutableVec);
291    method public void setP2(androidx.ink.geometry.MutableVec);
292    property public androidx.ink.geometry.MutableVec p0;
293    property public androidx.ink.geometry.MutableVec p1;
294    property public androidx.ink.geometry.MutableVec p2;
295  }
296
297  public final class MutableVec extends androidx.ink.geometry.Vec {
298    ctor public MutableVec();
299    ctor public MutableVec(float x, float y);
300    method public static androidx.ink.geometry.MutableVec fromDirectionAndMagnitude(@androidx.ink.geometry.AngleRadiansFloat float direction, float magnitude);
301    method public float getX();
302    method public float getY();
303    method public androidx.ink.geometry.MutableVec populateFrom(androidx.ink.geometry.Vec input);
304    method public void setX(float);
305    method public void setY(float);
306    property public float x;
307    property public float y;
308    field public static final androidx.ink.geometry.MutableVec.Companion Companion;
309  }
310
311  public static final class MutableVec.Companion {
312    method public androidx.ink.geometry.MutableVec fromDirectionAndMagnitude(@androidx.ink.geometry.AngleRadiansFloat float direction, float magnitude);
313  }
314
315  public abstract class Parallelogram {
316    method public final float computeSignedArea();
317    method public abstract androidx.ink.geometry.Vec getCenter();
318    method public abstract float getHeight();
319    method @androidx.ink.geometry.AngleRadiansFloat public abstract float getRotation();
320    method public abstract float getShearFactor();
321    method @FloatRange(from=0.0) public abstract float getWidth();
322    property public abstract androidx.ink.geometry.Vec center;
323    property public abstract float height;
324    property @androidx.ink.geometry.AngleRadiansFloat public abstract float rotation;
325    property public abstract float shearFactor;
326    property @FloatRange(from=0.0) public abstract float width;
327    field public static final androidx.ink.geometry.Parallelogram.Companion Companion;
328  }
329
330  public static final class Parallelogram.Companion {
331  }
332
333  public final class PartitionedMesh {
334    method public androidx.ink.geometry.Box? computeBoundingBox();
335    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Box box);
336    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Box box, optional androidx.ink.geometry.AffineTransform boxToThis);
337    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Parallelogram parallelogram);
338    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Parallelogram parallelogram, optional androidx.ink.geometry.AffineTransform parallelogramToThis);
339    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.PartitionedMesh other);
340    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.PartitionedMesh other, optional androidx.ink.geometry.AffineTransform otherShapeToThis);
341    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Triangle triangle);
342    method @FloatRange(from=0.0, to=1.0) public float computeCoverage(androidx.ink.geometry.Triangle triangle, optional androidx.ink.geometry.AffineTransform triangleToThis);
343    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Box box, float coverageThreshold);
344    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Box box, float coverageThreshold, optional androidx.ink.geometry.AffineTransform boxToThis);
345    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Parallelogram parallelogram, float coverageThreshold);
346    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Parallelogram parallelogram, float coverageThreshold, optional androidx.ink.geometry.AffineTransform parallelogramToThis);
347    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.PartitionedMesh other, float coverageThreshold);
348    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.PartitionedMesh other, float coverageThreshold, optional androidx.ink.geometry.AffineTransform otherShapeToThis);
349    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Triangle triangle, float coverageThreshold);
350    method public boolean computeCoverageIsGreaterThan(androidx.ink.geometry.Triangle triangle, float coverageThreshold, optional androidx.ink.geometry.AffineTransform triangleToThis);
351    method protected void finalize();
352    method @IntRange(from=0L) public int getOutlineCount(@IntRange(from=0L) int groupIndex);
353    method @IntRange(from=0L) public int getOutlineVertexCount(@IntRange(from=0L) int groupIndex, @IntRange(from=0L) int outlineIndex);
354    method @IntRange(from=0L) public int getRenderGroupCount();
355    method public void initializeSpatialIndex();
356    method public androidx.ink.geometry.MutableVec populateOutlinePosition(@IntRange(from=0L) int groupIndex, @IntRange(from=0L) int outlineIndex, @IntRange(from=0L) int outlineVertexIndex, androidx.ink.geometry.MutableVec outPosition);
357    field public static final androidx.ink.geometry.PartitionedMesh.Companion Companion;
358  }
359
360  public static final class PartitionedMesh.Companion {
361  }
362
363  public abstract class Segment {
364    method public final androidx.ink.geometry.ImmutableBox computeBoundingBox();
365    method public final androidx.ink.geometry.MutableBox computeBoundingBox(androidx.ink.geometry.MutableBox outBox);
366    method public final androidx.ink.geometry.ImmutableVec computeDisplacement();
367    method public final androidx.ink.geometry.MutableVec computeDisplacement(androidx.ink.geometry.MutableVec outVec);
368    method @FloatRange(from=0.0) public final float computeLength();
369    method public final androidx.ink.geometry.ImmutableVec computeLerpPoint(float ratio);
370    method public final androidx.ink.geometry.MutableVec computeLerpPoint(float ratio, androidx.ink.geometry.MutableVec outVec);
371    method public final androidx.ink.geometry.ImmutableVec computeMidpoint();
372    method public final androidx.ink.geometry.MutableVec computeMidpoint(androidx.ink.geometry.MutableVec outVec);
373    method public abstract androidx.ink.geometry.Vec getEnd();
374    method public abstract androidx.ink.geometry.Vec getStart();
375    method public final boolean isAlmostEqual(androidx.ink.geometry.Segment other, @FloatRange(from=0.0) float tolerance);
376    method public final float project(androidx.ink.geometry.Vec pointToProject);
377    property public abstract androidx.ink.geometry.Vec end;
378    property public abstract androidx.ink.geometry.Vec start;
379    field public static final androidx.ink.geometry.Segment.Companion Companion;
380  }
381
382  public static final class Segment.Companion {
383  }
384
385  public abstract class Triangle {
386    method public final androidx.ink.geometry.ImmutableBox computeBoundingBox();
387    method public final androidx.ink.geometry.MutableBox computeBoundingBox(androidx.ink.geometry.MutableBox outBox);
388    method public final androidx.ink.geometry.ImmutableSegment computeEdge(@IntRange(from=0L, to=2L) int index);
389    method public final androidx.ink.geometry.MutableSegment computeEdge(@IntRange(from=0L, to=2L) int index, androidx.ink.geometry.MutableSegment outSegment);
390    method public final float computeSignedArea();
391    method public final operator boolean contains(androidx.ink.geometry.Vec point);
392    method public abstract androidx.ink.geometry.Vec getP0();
393    method public abstract androidx.ink.geometry.Vec getP1();
394    method public abstract androidx.ink.geometry.Vec getP2();
395    method public final boolean isAlmostEqual(androidx.ink.geometry.Triangle other, @FloatRange(from=0.0) float tolerance);
396    property public abstract androidx.ink.geometry.Vec p0;
397    property public abstract androidx.ink.geometry.Vec p1;
398    property public abstract androidx.ink.geometry.Vec p2;
399    field public static final androidx.ink.geometry.Triangle.Companion Companion;
400  }
401
402  public static final class Triangle.Companion {
403  }
404
405  public abstract class Vec {
406    method @FloatRange(from=0.0, to=java.lang.Math.PI) @androidx.ink.geometry.AngleRadiansFloat public static final float absoluteAngleBetween(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
407    method public static final void add(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
408    method @FloatRange(from=-3.141592653589793, to=java.lang.Math.PI) @androidx.ink.geometry.AngleRadiansFloat public final float computeDirection();
409    method @FloatRange(from=0.0) public final float computeMagnitude();
410    method @FloatRange(from=0.0) public final float computeMagnitudeSquared();
411    method public final androidx.ink.geometry.ImmutableVec computeNegation();
412    method public final androidx.ink.geometry.MutableVec computeNegation(androidx.ink.geometry.MutableVec outVec);
413    method public final androidx.ink.geometry.ImmutableVec computeOrthogonal();
414    method public final androidx.ink.geometry.MutableVec computeOrthogonal(androidx.ink.geometry.MutableVec outVec);
415    method public final androidx.ink.geometry.ImmutableVec computeUnitVec();
416    method public final androidx.ink.geometry.MutableVec computeUnitVec(androidx.ink.geometry.MutableVec outVec);
417    method public static final float determinant(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
418    method public static final void divide(androidx.ink.geometry.Vec lhs, float rhs, androidx.ink.geometry.MutableVec output);
419    method public static final float dotProduct(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
420    method public abstract float getX();
421    method public abstract float getY();
422    method public final boolean isAlmostEqual(androidx.ink.geometry.Vec other);
423    method public final boolean isAlmostEqual(androidx.ink.geometry.Vec other, optional @FloatRange(from=0.0) float tolerance);
424    method public final boolean isParallelTo(androidx.ink.geometry.Vec other, @FloatRange(from=0.0) @androidx.ink.geometry.AngleRadiansFloat float angleTolerance);
425    method public final boolean isPerpendicularTo(androidx.ink.geometry.Vec other, @FloatRange(from=0.0) @androidx.ink.geometry.AngleRadiansFloat float angleTolerance);
426    method public static final void multiply(androidx.ink.geometry.Vec lhs, float rhs, androidx.ink.geometry.MutableVec output);
427    method public static final void multiply(float lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
428    method @FloatRange(from=-3.141592653589793, to=java.lang.Math.PI, fromInclusive=false) @androidx.ink.geometry.AngleRadiansFloat public static final float signedAngleBetween(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
429    method public static final void subtract(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
430    property public abstract float x;
431    property public abstract float y;
432    field public static final androidx.ink.geometry.Vec.Companion Companion;
433    field public static final androidx.ink.geometry.ImmutableVec ORIGIN;
434  }
435
436  public static final class Vec.Companion {
437    method @FloatRange(from=0.0, to=java.lang.Math.PI) @androidx.ink.geometry.AngleRadiansFloat public float absoluteAngleBetween(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
438    method public void add(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
439    method public float determinant(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
440    method public void divide(androidx.ink.geometry.Vec lhs, float rhs, androidx.ink.geometry.MutableVec output);
441    method public float dotProduct(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
442    method public void multiply(androidx.ink.geometry.Vec lhs, float rhs, androidx.ink.geometry.MutableVec output);
443    method public void multiply(float lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
444    method @FloatRange(from=-3.141592653589793, to=java.lang.Math.PI, fromInclusive=false) @androidx.ink.geometry.AngleRadiansFloat public float signedAngleBetween(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs);
445    method public void subtract(androidx.ink.geometry.Vec lhs, androidx.ink.geometry.Vec rhs, androidx.ink.geometry.MutableVec output);
446    property public androidx.ink.geometry.ImmutableVec ORIGIN;
447  }
448
449}
450
451