Class: Geometry

Geometry

new Geometry(params)

几何体

Name Type Description
params object optional

初始化参数,所有params都会复制到实例上

Example
const geometry = new Hilo3d.Geometry();
geometry.addFace([-0.5, -0.289, 0], [0.5, -0.289, 0], [0, 0.577, 0]);

Members Show Inherited

Name Type Default Description
isGeometry boolean true
className string Geometry
vertices GeometryData null

顶点数据

uvs GeometryData null

uv 数据

uvs1 GeometryData null

uv1 数据

colors GeometryData null

color 数据

indices GeometryData null

顶点索引数据

skinIndices GeometryData null

骨骼索引

skinWeights GeometryData null

骨骼权重数据

mode number TRIANGLES

绘制模式

isStatic Boolean true

是否是静态

isDirty Boolean true

是否需要更新

useAABBRaycast Boolean

使用 aabb 碰撞检测

userData any null

用户数据

id string

id

normals GeometryData null

法向量数据,如果没有的话会自动生成

tangents GeometryData null

切线向量数据,如果没有的话会自动生成

tangents1 GeometryData null

切线向量数据,如果没有的话会自动生成

Methods Show Inherited

convertToLinesMode()

将三角形模式转换为线框模式,即 Material 中的 wireframe

translate(x, y, z){Geometry}

平移

Name Type Default Description
x Number 0 optional
y Number 0 optional
z Number 0 optional
Returns:
Type Description
Geometry this

缩放

Name Type Default Description
x Number 1 optional
y Number 1 optional
z Number 1 optional
Returns:
Type Description
Geometry this

旋转

Name Type Default Description
x Number 0 optional

旋转角度x

y Number 0 optional

旋转角度y

z Number 0 optional

旋转角度z

Returns:
Type Description
Geometry this

transformMat4(mat4){Geometry}

Transforms the geometry with a mat4.

Name Type Description
mat4 Matrix4
Returns:
Type Description
Geometry this

merge(geometry, matrix){Geometry}

合并两个 geometry

Name Type Default Description
geometry Geometry
matrix Matrix4 null optional

合并的矩阵

Returns:
Type Description
Geometry this

addPoints(points)

添加顶点

Name Type Description
points Array.<number> repeatable

顶点坐标,如 addPoints([x, y, z], [x, y, z])

addIndices(indices)

添加顶点索引

Name Type Description
indices number repeatable

顶点索引,如 addIndices(0, 1, 2)

addLine(p1, p2)

添加一条线

Name Type Description
p1 Array.<number>

起点坐标,如 [x, y, z]

p2 Array.<number>

终点坐标

addFace(p1, p2, p3)

添加一个三角形 ABC

Name Type Description
p1 Array.<number>

点A,如 [x, y, z]

p2 Array.<number>

点B

p3 Array.<number>

点C

addRect(p1, p2, p3, p4)

添加一个矩形 ABCD

Name Type Description
p1 Array.<number>

点A,如 [x, y, z]

p2 Array.<number>

点B

p3 Array.<number>

点C

p4 Array.<number>

点D

setVertexUV(start, uvs)

设置顶点对应的uv坐标

Name Type Description
start number

开始的顶点索引

uvs Array.<Array.<number>>

uv坐标数据,如 [[0, 0], [1, 0]]

setFaceUV(start, p1, p2, p3)

设置三角形ABC的uv

Name Type Description
start number

开始的顶点索引

p1 Array.<number>

点A的uv,如 [0, 0]

p2 Array.<number>

点B的uv

p3 Array.<number>

点C的uv

setRectUV(start, p1, p2, p3, p4)

设置矩形ABCD的uv

Name Type Description
start number

开始的顶点索引

p1 Array.<number>

点A的uv,如 [0, 0]

p2 Array.<number>

点B的uv

p3 Array.<number>

点C的uv

p4 Array.<number>

点D的uv

getBounds(matrix, bounds){Bounds}

获取指定matrix变化后的包围盒数据

Name Type Default Description
matrix Matrix4 null optional

matrix 需要变换的矩阵

bounds Bounds null optional

包围盒数据,传入的话会改变他

Returns:
Type Description
Bounds 包围盒数据

getLocalBounds(force){Bounds}

获取本地包围盒

Name Type Default Description
force Boolean false optional

是否强制刷新

Returns:
Type Description
Bounds

getSphereBounds(matrix){Sphere}

获取球面包围盒

Name Type Description
matrix Matrix4
Returns:
Type Description
Sphere

getLocalSphereBounds(force){Sphere}

获取本地球面包围盒

Name Type Default Description
force Boolean false optional

是否强制刷新

Returns:
Type Description
Sphere

convertToNoIndices(verticesItemLen)

将 Geometry 转换成无 indices

Name Type Default Description
verticesItemLen number 3 optional

转换结果的顶点数据的位数(3 or 4),如果为4会补1

clone当前Geometry

Returns:
Type Description
Geometry 返回clone的Geometry

_aabbRaycast(ray){Array.<Vector3>|null}

检测 aabb 碰撞

Name Type Description
ray Ray
Returns:
Type Description
Array.<Vector3> | null

_raycast(ray, side){Array.<Vector3>|null}

_raycast,子类可覆盖实现

Name Type Description
ray Ray
side GLenum
Returns:
Type Description
Array.<Vector3> | null

raycast(ray, side, sort){Array.<Vector3>|null}

raycast

Name Type Default Description
ray Ray
side GLenum
sort Boolean true optional

是否按距离排序

Returns:
Type Description
Array.<Vector3> | null

getSize(){number}

获取数据的内存大小,只处理顶点数据,单位为字节

Returns:
Type Description
number 内存占用大小
Deprecated
  • Yes
Returns:
Type Description
Geometry this