new FdLoft(viewer, id)
Parameters:
Name | Type | Description |
---|---|---|
viewer |
Freedo.Viewer | |
id |
string | |
opt.positions |
Array.<Freedo.Cartesian3> | 路线关键点,没有指定时启用手动选点 |
opt.shapeType |
string | 截面形状,目前支持['circle'|'semicircle'|'triangle'|'pentagram'|'square'|'panel'], 圆形、半圆、三角形、五角星、正方形、面 |
opt.shape |
Array.<Freedo.Cartesian3> | 截面特征点,如果指定了截面形状则会忽略这个参数 |
opt.thick |
number | 管道厚度 |
opt.color |
Freedo.Color | 管道颜色,如果指定了纹理图片则颜色设置无效,默认Freedo.Color.YELLOW |
opt.image |
string | 管道纹理图片路径 |
opt.loop |
boolean | number | 纹理循环播放频率,默认为false |
opt.rate |
number | 管道转弯时插值的密度,默认720 |
opt.smooth |
number | 管道转弯半径系数,默认1.5,转弯半径为管道总宽度一半乘以该系数 |
opt.showDebugWireframe |
number | 是否显示线框结构 |
opt.offsetHeight |
number | 手动绘制时的偏移高度,默认为0.1 |
Example
var viewer = Freedo.FdApp.createDefaultViewer('freedoContainer'); //如果option参数中不包含pts属性,则会激活手动选取节点的功能 var ent = mm.add('Loft', { positions: [ new Freedo.Cartesian3(0.0, 0.0, 0.0), new Freedo.Cartesian3(100.0, 0.0, 0.0) ], smooth: 50, shape: [ new Freedo.Cartesian3(0, 0, 0), new Freedo.Cartesian3(1, 0, 0), new Freedo.Cartesian3(1, 1, 0), new Freedo.Cartesian3(0, 1, 0) ] });
Members
-
option
-
获取实体的属性数据
Methods
-
<static> buildCirclePts(center, radii, vec, rate)
-
生成一个圆的特征点坐标数组
Parameters:
Name Type Description center
Freedo.Cartesian3 圆的中心点
radii
number 半径
vec
Freedo.Cartesian3 圆的轴方向向量
rate
number 圆上点的插值密度,默认360
-
<static> buildGeometry(opt)
-
根据参数生成Geometry
Parameters:
Name Type Description opt
Object 构建Geometry所需参数
Properties
Name Type Description positions
number 顶点集合
normals
number 三角面法向量集合
compressSt
boolean 是否压缩纹理坐标,默认true 特别说明:除非明确知道纹理坐标计算过程和primitive的关系,否则不要设置这个属性
primitiveType
Freedo.PrimitiveType 顶点构建primitive类型
-
<static> buildPentagramPts(center, radii, vec)
-
构建一个五角星坐标
Parameters:
Name Type Description center
* 五角星中心
radii
* 最大半径
vec
* 五角星所在面的法向量
-
<static> buildPrimitive(shapes)
-
根据截面特征点生成Primitive
Parameters:
Name Type Description shapes
Array.<Array.<Freedo.Cartesian3>> 所有截面集合特征点
Returns:
根据特征点集合生成的Primitive
- Type
- Freedo.Primitive
-
<static> calcInner(shape, pt, thick)
-
根据外径点计算内径点
Parameters:
Name Type Description shape
Array.<Freedo.Cartesian3> 截面外径特征点
pt
Freedo.Cartesian3 截面中心点
thick
number 厚度
-
<static> drawShape(pos, shape, pt, vt, r, thick)
-
计算转弯时其中一个截面特征点
Parameters:
Name Type Description pos
Freedo.Cartesian3 中心点起始位置(即shape参数指定截面的中心点)
shape
Array.<Freedo.Cartesian3> 截面关键点
pt
Freedo.Cartesian3 要计算的截面中心点位置
vt
Freedo.Cartesian3 截面旋转的轴向量
r
number 截面旋转的弧度数
thick
number 管道厚度
Returns:
截面特征点
- Type
- Array.<Freedo.Cartesian3>
-
<static> getMaxRdii(pt, shape)
-
计算到截面中心的最大距离
Parameters:
Name Type Description pt
Freedo.Cartesian3 截面中心点
shape
Array.<Freedo.Cartesian3> 截面特征点
-
<static> getSoomth()
-
动态计算转弯半径
-
<static> rotateVector(vc, v, r, rlt)
-
旋转向量指定的弧度
Parameters:
Name Type Description vc
Freedo.Cartesian3 旋转的轴
v
Freedo.Cartesian3 要旋转的向量
r
number 旋转的弧度
rlt
Freedo.Cartesian3 旋转后的向量
-
<static> showWireframe()
-
显示关键点线框
-
<static> smoothBrokenline(pts, shape, rate, smooth)
-
计算一段转弯折线(三个点)的插值截面集合
Parameters:
Name Type Description pts
* 折线的三个点
shape
* 截面在折线第一个点时的特征点
rate
* 转弯插值密度
smooth
* 转弯半径相对于截面最大半径倍数(截面为点时为转弯半径(米))
-
<static> smoothByPolyline(pts, shape, rate, smooth)
-
Parameters:
Name Type Description pts
Array.<Freedo.Cartesian3> 路径关键点集合
shape
Array.<Freedo.Cartesian3> 截面关键点
rate
number 拐点插值密度默认720,即每0.5度插值一个点
smooth
number 转弯半径大小(截面最大半径倍数)
-
<static> stCalculator(shape, pts, ratio)
-
纹理坐标计算器
Parameters:
Name Type Description shape
Array.<Freedo.Cartesian3> 第一个截面特征点
pts
* 插值之后的截面中心点
ratio
* 图片的宽高比
-
<static> triangulate(shapes, ratio)
-
将截面特征点三角化生成顶点集合、索引集合、法向量集合。。。
Parameters:
Name Type Description shapes
Array.<Array.<Freedo.Cartesian3>> 截面特征点集合
ratio
Number 纹理长宽比
-
destroy()
-
销毁
-
hide()
-
隐藏
-
on(listener [, scope])
-
注册事件捕捉
Parameters:
Name Type Argument Description listener
FdModel.FdModelManager~FdModelManagerCallback 当有事件触发时被执行的函数。
scope
Object <optional>
listener函数执行时的绑定的对象。
Returns:
返回一个函数,调用该函数可以取消监听。
- Type
- Freedo.Event~RemoveCallback
-
remove()
-
移除(销毁)
-
show()
-
显示