跳到主要内容
版本:v10.0

M3D / M3D / Algorithm / MeshAlgorithm

Class: MeshAlgorithm

M3D.Algorithm.MeshAlgorithm

Memberof

M3D.Algorithm

Description

Mesh数据计算

Author

WZ

Date

2022.11.17

Table of contents

Constructors

Methods

Constructors

constructor

new MeshAlgorithm(): MeshAlgorithm

Returns

MeshAlgorithm

Methods

calculateAirVol

calculateAirVol(v1, v2, v3, S, V): number[]

Parameters

NameTypeDescription
v1Vector3顶点1
v2Vector3顶点2
v3Vector3顶点3
Snumber-
Vnumber-

Returns

number[]

计算结果

Description

计算三角形的面积(分正反)与三棱柱体积(以Z=0为底面)


calculateCrossPoint

calculateCrossPoint(nodes, e, planeNormal, pnt, crossP, result): void

Parameters

NameTypeDescription
nodesVector3[]点坐标
enumber[]边界的索引
planeNormalVector3-
pntVector3
crossPVector3交点坐标
resultboolean[][isOnPlane: 边e是否在切面上, isCrossed: 边e与切面是否相交]

Returns

void

Description

计算边与Mesh的交点


calculateDisToPlane

calculateDisToPlane(nodes, planeNormal, pnt, disFlags): void

Parameters

NameTypeDescription
nodesVector3[]点坐标
planeNormalVector3切面
pntVector3
disFlagsnumber[]输出标记点

Returns

void

Description

计算点与切面的关系,在切面上返回0,在切面正面(法向侧)返回1,在切面背面返回-1


calculateTriWithPlane

calculateTriWithPlane(triangles, planeNormal, pnt, crossPnt): boolean

Parameters

NameTypeDescription
trianglesVector3[]三角形的三个顶点坐标
planeNormalVector3-
pntVector3
crossPntVector3[]交点

Returns

boolean

三角形与平面是否共面

Description

计算三角形与平面的交点


findIntersection2Inter

findIntersection2Inter(u0, u1, v0, v1, w): number

Parameters

NameTypeDescription
u0number区间1的起点
u1number区间1的终点
v0number区间2的起点
v1number区间2的终点
wnumber[]两区间的交点

Returns

number

Description

计算区间[u0,u1] v0,v1的相交情况


getTowTrisInnerCrossLine

getTowTrisInnerCrossLine(triangle1, triangle2, crossPnt): void

Parameters

NameType
triangle1Vector3[]
triangle2Vector3[]
crossPntVector3[]

Returns

void

Description

区分内外表面的交线计算


rayIntersctTriangle

rayIntersctTriangle(triangle, rayStrat): boolean

Parameters

NameTypeDescription
triangleVector3[]三角形的三个顶点
rayStratVector3射线的起点

Returns

boolean

是否相交,相交且交点在三角形内部(不包括边界),返回true,否则返回false

Description

射线与三角形的交点计算关系


segIntersTriNew

segIntersTriNew(tri, point1, point2, crossPoint): number

Parameters

NameType
triVector3[]
point1Vector3
point2Vector3
crossPointVector3[]

Returns

number

Description

计算共面的线段与三角形的交点


testSTLToMesh

testSTLToMesh(tabs, nodes, kelems): void

Parameters

NameType
tabsVector3[]
nodesVector3[]
kelemsnumber[]

Returns

void

Description

三角形去重