public class PresetUtils
extends java.lang.Object
构造器和说明 |
---|
PresetUtils() |
限定符和类型 | 方法和说明 |
---|---|
static java.lang.Integer |
correctHitPoint(ARGeoVerticalRegion verticalRegion,
Point3D targetPoint)
使用垂直面纠正碰撞点
|
static Point3D |
correctHitPoint(Point3D cameraPosition,
Point3D currentHitPoint,
java.util.List<Point3D> list)
纠正碰撞点位置
|
static java.lang.Integer[] |
correctHitPointBottom(ARGeoPrism geoPrism,
Point3D targetPoint)
使用AR棱柱对象底面纠正碰撞点
|
static java.lang.Integer[] |
correctHitPointTop(ARGeoPrism geoPrism,
Point3D targetPoint)
使用AR棱柱对象顶面纠正碰撞点
|
static java.lang.Integer[] |
correctHitPointVertical(ARGeoPrism geoPrism,
Point3D targetPoint)
使用AR棱柱对象的侧面纠正碰撞点
|
static java.util.List<Point3D> |
genArcPoints(java.util.List<Point3D> points,
float radius,
int edgeNum)
根据圆角的半径和圆弧段数,在拐点处将拐点替换为弧段上的连续点
|
static java.util.List<Point3D> |
genNewPointsBySpacingDistance(java.util.List<Point3D> points,
float spacingDistance)
根据固定的间隔距离spacingDistance和原有点集,生成新点集合
|
static java.util.List<Point3D> |
genNewPointsBySpacingDistance(Point3D a,
Point3D b,
float spacingDistance)
在两点间根据间距生成对应点集
|
static java.util.List<Point3D> |
genStripeLinePoints(java.util.List<Point3D> points,
float lineWidth,
float radius,
int edgeNum)
根据折线点集生成平行与XOY面的可构成平滑宽线多边形的点集
|
static java.util.List<Point3D> |
genVerticalPoints(Point3D pointA,
Point3D pointB,
float width)
在平行XOY的平面上,获取垂直AB,且过端点AB,且距离为width的点集(AB不重合,共4个点)
3 --------- 2
\a---------b\
0 --------- 1
|
static java.util.List<Point3D> |
getAllPointByHitResult(java.util.List<HitResult> hitResults)
根据ARCore的碰撞检测结果获取碰撞点坐标,可返回null
|
static Point3D |
getCenterPoint(java.util.List<Point3D> sourceList)
从点集中获取中心点的位置
|
static float |
getCurrentCameraAzimuth(EffectView arView)
获取当前相机与相机启动时的夹角
|
static java.util.List<Point3D> |
getNonRepeatPoints(java.util.List<Point3D> list)
过滤前后相同的点
|
static Point3D |
getPointByHitResult(java.util.List<HitResult> hitResults0,
HitTestMode hitTestMode)
根据ARCore的碰撞检测结果获取碰撞点坐标,可返回null
|
static Point3D |
getPointByScreenRayTest(EffectBaseView arEffectBaseView,
java.util.List<Point3D> list,
float x,
float y)
获取通过屏幕坐标生成的射线与list点集构成的平面的交点,返回值可为null
注意:当碰撞点,在朝向的后方也返回null
|
static Quaternion |
getQuaternionByPoint3Ds(Point3D a,
Point3D b,
Point3D c)
获取不共线三点构成的平面相对水平面的旋转四元数
|
static Quaternion |
getQuaternionByVector(Vector v0,
Vector v1)
获取单位向量V0旋转为单位向量V1的旋转四元数
|
static Quaternion |
getQuaternionByVector3(Vector3 v0,
Vector3 v1)
获取单位向量V0旋转为单位向量V1的旋转四元数
|
static int |
getScreenTouchNearPointIndex(android.graphics.Point p,
java.util.List<android.graphics.Point> list)
获取触摸屏幕最近点序号
|
static InsertInfo |
getTouchNearPoint(Point3D p,
java.util.List<Point3D> list)
增加节点时,通过点击位置,判断是否增加节点,以及加在哪儿
|
static int |
getTouchNearPointIndex(Point3D p,
java.util.List<Point3D> list)
获取一个点与一组点串,距离最近的点
|
static boolean |
isClockwiseAroundZ(java.util.ArrayList<Point3D> pointList,
boolean status)
判断点集是否绕顺时针旋转
|
static boolean |
isInLineSegment(Point3D src,
Point3D a,
Point3D b)
判断src点是否在AB线段上
|
static boolean |
isInPolygon(Point3D src,
java.util.List<Point3D> points,
float tolerance)
判断空间中任意点,是否在空间某一平面上的多边形内
|
static boolean |
isInPolygon(Point src,
java.util.List<Point> points)
判断平面上任意点,是否在空间某一平面上的多边形内
|
public static boolean isInPolygon(Point src, java.util.List<Point> points)
src
- points
- 首尾相连的点集public static boolean isInPolygon(Point3D src, java.util.List<Point3D> points, float tolerance)
src
- points
- 首尾相连的点集tolerance
- 容限public static java.util.List<Point3D> genStripeLinePoints(java.util.List<Point3D> points, float lineWidth, float radius, int edgeNum)
points
- lineWidth
- radius
- edgeNum
- public static java.util.List<Point3D> genVerticalPoints(Point3D pointA, Point3D pointB, float width)
pointA
- pointB
- width
- public static java.util.List<Point3D> genArcPoints(java.util.List<Point3D> points, float radius, int edgeNum)
points
- radius
- edgeNum
- public static Point3D getCenterPoint(java.util.List<Point3D> sourceList)
sourceList
- public static Quaternion getQuaternionByVector(Vector v0, Vector v1)
v0
- v1
- public static Quaternion getQuaternionByVector3(Vector3 v0, Vector3 v1)
v0
- v1
- public static Quaternion getQuaternionByPoint3Ds(Point3D a, Point3D b, Point3D c)
a
- b
- c
- public static Point3D correctHitPoint(Point3D cameraPosition, Point3D currentHitPoint, java.util.List<Point3D> list)
cameraPosition
- 相机位置currentHitPoint
- 源碰撞点list
- 碰撞对象的顶点(大于3个且不共线)public static Point3D getPointByScreenRayTest(EffectBaseView arEffectBaseView, java.util.List<Point3D> list, float x, float y)
EffectBaseView
- list
- 碰撞对象的顶点(大于3个且不共线)x
- 屏幕x坐标值y
- 屏幕y坐标值public static java.lang.Integer correctHitPoint(ARGeoVerticalRegion verticalRegion, Point3D targetPoint)
verticalRegion
- targetPoint
- public static Point3D getPointByHitResult(java.util.List<HitResult> hitResults0, HitTestMode hitTestMode)
hitResults0
- hitTestMode
- public static java.util.List<Point3D> getAllPointByHitResult(java.util.List<HitResult> hitResults)
hitResults
- public static float getCurrentCameraAzimuth(EffectView arView)
arView
- public static java.util.List<Point3D> getNonRepeatPoints(java.util.List<Point3D> list)
list
- public static java.util.List<Point3D> genNewPointsBySpacingDistance(Point3D a, Point3D b, float spacingDistance)
a
- b
- spacingDistance
- public static java.util.List<Point3D> genNewPointsBySpacingDistance(java.util.List<Point3D> points, float spacingDistance)
points
- spacingDistance
- public static boolean isInLineSegment(Point3D src, Point3D a, Point3D b)
src
- 源点a
- 线段端点Ab
- 线段端点Bpublic static boolean isClockwiseAroundZ(java.util.ArrayList<Point3D> pointList, boolean status)
pointList
- 点集status
- true时,表示首尾相连的点集public static int getTouchNearPointIndex(Point3D p, java.util.List<Point3D> list)
p
- 点list
- 点集public static InsertInfo getTouchNearPoint(Point3D p, java.util.List<Point3D> list)
p
- 点list
- 点集public static java.lang.Integer[] correctHitPointVertical(ARGeoPrism geoPrism, Point3D targetPoint)
geoPrism
- AR棱柱对象targetPoint
- 相机前方的待校正的点public static java.lang.Integer[] correctHitPointBottom(ARGeoPrism geoPrism, Point3D targetPoint)
geoPrism
- targetPoint
- public static java.lang.Integer[] correctHitPointTop(ARGeoPrism geoPrism, Point3D targetPoint)
geoPrism
- targetPoint
- public static int getScreenTouchNearPointIndex(android.graphics.Point p, java.util.List<android.graphics.Point> list)
p
- list
-