com.supermap.realspace.threeddesigner
类 ModelBuilder3D

java.lang.Object
  继承者 com.supermap.realspace.threeddesigner.ModelBuilder3D

public abstract class ModelBuilder3D
extends java.lang.Object

三维建模类。


构造方法摘要
ModelBuilder3D()
           
 
方法摘要
static boolean buildGeoBody(java.util.ArrayList<Geometry3D> geoBlocks, java.util.ArrayList<Point3Ds> ptLevels, boolean bLonLat, Geometry clipRegions)
          多层点集构建地质体。
static GeoModel3D buildGeoBody(Point3Ds ptList, double[] maxHighList, double[] minHighList)
          点集中每个点的最大高度和最小高度构建地质体。
static GeoTIM buildTIM(DatasetVector pDatasetVector, java.lang.String strFieldName)
          构建不规则四面体网格
static GeoTIM buildTIM(java.util.HashMap<Point3D,java.lang.Double> dicPoints, boolean bLatLon)
          构建不规则四面体网格
static GeoModel3D buildTIN(Point3Ds ptList, boolean bLonLat, Geometry clipRegions)
          点集构建三角网模型。
static java.util.ArrayList<GeoRegion3D> combinePolygon(java.util.ArrayList<GeoRegion3D> regions, boolean bLonLat, BorderType borderType, double dulplicateVerticesThreshold)
          支持多个三维面合并成一个。
static boolean combineSkeletonByMaterial(Model modelSrc, Model modelResult)
          已过时。 
static GeoRegion3D computeConcaveHull(Point3Ds pnts, boolean bLonLat, double dConcavity, double dLengthThreshold)
          计算凹多边形
static GeoModel3D convexHull(java.util.ArrayList<GeoPoint3D> geoPnts, boolean bLonLat)
          计算凸包。
static Model convexHull(Model modelSrc)
          计算凸包。
static Model convexHull(Model modelSrc, SkeletonID id)
          计算凸包。
static GeoModel3D convexHull(Point3Ds pnts, boolean bLonLat)
          计算凸包。
static Model convexHullPerSkeleton(Model modelSrc)
          计算凸包:每个子对象对应一个凸包。
static boolean correctNonManifold(Skeleton skeleton, java.util.ArrayList<java.util.HashMap<Point3D,Point3D>> manifoldLines, java.util.ArrayList<Point3D> points)
          校正非流形的骨架。
static boolean correctTopology(Skeleton skeleton)
          骨架三角网拓扑校正。
static Geometry createBuffer(Geometry geometry, boolean isLonLat, BufferParameter parameter)
          三维缓冲,支持三维线、三维面缓冲(拓展)成三维面;支持三维线、三维面、模型缓冲(拓展)成三维实体模型。
static java.util.ArrayList<GeoModel3D> envelop(Geometry3D geometry3D, EnvelopParameter parameter)
          三维面几何对象构建闭合体,支持非经纬度坐标三维面几何对象构建闭合体。
static java.util.ArrayList<GeoModel3D> envelop(GeoModel3D geomodel, double dbZ)
          模型拉伸闭合体。
static java.util.ArrayList<GeoModel3D> envelop(GeoRegion3D geometry, double dbZ)
          三维面拉伸闭合体。
static java.util.ArrayList<GeoRegion3D> extractBorder(GeoModel3D geoModel, BorderType borderType)
          提取边界
static java.util.ArrayList<Geometry3D> geometryMatch(GeoModel3D geoModel, java.util.ArrayList<Geometry> geometryList, MatchParameter matchParam)
          二维数据通过model匹配成三维数据。
static GeoModel3D linearExtrude(Geometry geometry, boolean bLonLat, double height, double twist, double scaleX, double scaleY)
          已过时。 
static GeoModel3D linearExtrude(Geometry geometry, boolean bLonLat, double height, double twist, double scaleX, double scaleY, TextureMapParameter texParam)
          已过时。 
static GeoModel3D linearExtrude(Geometry geometry, boolean bLonLat, LinearExtrudeParameter extrudeParameter, TextureMapParameter uvwParam)
          线性拉伸,可进行贴图设置
 java.util.ArrayList<GeoRegion3D> loft(GeoLine offsetSection, GeoLine3D geoLine, boolean bLonLat, boolean bGroup)
          多级边坡放样,支持截面为线对象,依据道路边线放样为三维边坡面。
static GeoModel3D loft(Geometry geometry, GeoLine3D line, boolean bLonLat, int Chamfer, ChamferStyle style)
          放样
static GeoModel3D loft(Geometry geometry, GeoLine3D line, boolean bLonLat, int Chamfer, ChamferStyle style, TextureMapParameter texParam)
          放样
static GeoModel3D loft(Geometry geometry, GeoLine3D line, boolean bLonLat, LoftParameter loftParams, TextureMapParameter uvwParam)
          重载接口loft支持放样
static GeoRegion3D makeRegion3D(Region3DParameter expressionParam)
          支持公式参数化构建矢量面
static GeoModel3D makeSurfaceMesh(SurfaceMeshParameter parameter)
          参数化表面建模。
static boolean mergeSkeleton(Model modelSrc, Model modelResult, boolean bHasLOD)
          根据材质合并骨架。
static boolean mirror(GeoModel3D model, Plane plane)
          镜像。
static boolean mosaic(GeoModel3D model, java.util.ArrayList<Geometry> mosaicRegionList)
          获取三角网操作中模型镶嵌信息,支持模型与矢量面进行镶嵌
static GeoRegion planeProjection(GeoModel3D model)
          平面投影:仅支持投影坐标系模型
static GeoRegion3D planeProjection(GeoModel3D model, Plane plane)
          平面投影
static GeoRegion planeProjection2D(GeoModel3D model, Plane plane)
          平面投影,将获得的投影转到XY上
static boolean reComputeNormal(Model modelSrc, Model modelResult, NormalComputeMode normalMode, double dAngle)
          重新计算法线
static boolean removeDuplicateTriangle(Skeleton skeleton)
          骨架移除重复三角形。
static int removeDuplicateVertex2(Model modelSrc, Model modelResult)
          移除重复顶点;结果为带属性的Index
 int removeDuplicateVertex2WithNormal(Skeleton skeleton)
          移除重复点保留法线。
static int removeRedundantVertex(Model modelSrc, Model modelResult, double dThreshold)
          移除共面的冗余点
static int removeRedundantVertex(Skeleton skeleton, double dThreshold)
          根据误差阈值,移除 Skeleton 上共面的冗余顶点。
static int removeUnreferencedVertex(Model modelSrc, Model modelResult)
          已过时。 
static GeoModel3D rotateExtrude(Geometry geometry, double angle)
          旋转拉伸
static GeoModel3D rotateExtrude(Geometry geometry, RotateExtrudeParameter rotParam)
          旋转拉伸
static GeoRegion sectionProjection(GeoModel3D model)
          已过时。 
static java.util.ArrayList<GeoRegion3D> sectionProjection(GeoModel3D model, java.util.ArrayList<Plane> planeList)
          截面投影,获得截面
static GeoRegion3D sectionProjection(GeoModel3D model, Plane plane)
          截面投影,获得截面。
static GeoRegion sectionProjection2D(GeoModel3D model, Plane plane)
          截面投影,获得的截面转到XY上
static GeoModel3D shadowVolume(GeoModel3D model, ShadowVolumeSetting param)
          创建阴影体。
static boolean simplify(Model modelSrc, Model modelResult, java.util.ArrayList<SkeletonID> listIDs, double[] listRatio, boolean bConstrainBorder)
          精细层指定子对象简化。
static boolean simplify(Model modelSrc, Model modelResult, java.util.ArrayList<SkeletonID> listIDs, double[] listRatio, double[] listThreshold)
          精细层指定子对象简化。
static boolean simplify(Model modelSrc, Model modelResult, double dbRatio, boolean bConstrainBorder)
          精细层简化。
static boolean simplify(Model modelSrc, Model modelResult, double dbRatio, double dbThreshold)
          精细层简化。
static GeoModel3D skylineSectorBody(GeoLine3D line3D, Point3D pntViewer, double dHeight, boolean bLatLon)
          获取天际线与观察点构成的闭合体。
static int split(Model modelSrc, Model modelResult)
          已过时。 
static int split(Model modelSrc, Model modelResult, double dThreshold)
          已过时。 
static boolean splitSkeleton(Model modelSrc, Model modelResult, boolean bVertexPositionConsidered)
          模型的子对象拆分。
static boolean splitSkeleton(Model srcModel, Model desModel, SplitParameter splitParameter)
          骨架拆分
static GeoModel3D straightSkeleton(Geometry geometry, boolean bLonLat, double dAngle)
          构建坡屋顶。
static java.util.ArrayList<SunlightAnalysisPointResult> sunlightAnalysis(Geometry3D geometry, GeoModel3D geoModelDes, SunlightAnalysisSetting param, boolean bLatLon)
          日照分析查询。
static java.util.ArrayList<SunlightAnalysisPointResult> sunlightAnalysis(Point3Ds ptList, SunlightAnalysisSetting param, boolean bLatLon)
          三维点日照分析查询。
static GeoModel3D tessellate(Geometry3D geometry3D, boolean isLonLat, TessellationParameter param)
          通过细分的方式将Geometry3D转化为模型。
static boolean textureRemapping(Model srcModel, Model desModel)
          模型数据纹理重映射。
static boolean uvwMap(GeoModel3D model, TextureMapParameter texParam)
          模型贴纹理:按模型整体进行纹理贴图映射。
static GeoModel3D viewShedBody(java.util.ArrayList<Point3Ds> point3Dlist, Point3D pntViewer, double dRadius, ViewShedType type, boolean bLatLon)
          获取可视域闭合体。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ModelBuilder3D

public ModelBuilder3D()
方法详细信息

buildGeoBody

public static boolean buildGeoBody(java.util.ArrayList<Geometry3D> geoBlocks,
                                   java.util.ArrayList<Point3Ds> ptLevels,
                                   boolean bLonLat,
                                   Geometry clipRegions)
多层点集构建地质体。

参数:
geoBlocks - 结果地质体集合。
ptLevels - 多层点集。
bLonLat - 是否是经纬度。
clipRegions - 裁剪范围。
返回:
是否成功。

buildGeoBody

public static GeoModel3D buildGeoBody(Point3Ds ptList,
                                      double[] maxHighList,
                                      double[] minHighList)
点集中每个点的最大高度和最小高度构建地质体。

参数:
ptList - 多层点集。
maxHighList - 点的最大高度集合。
minHighList - 点的最小高度集合。
返回:
返回生成的地质体模型。

buildTIN

public static GeoModel3D buildTIN(Point3Ds ptList,
                                  boolean bLonLat,
                                  Geometry clipRegions)
点集构建三角网模型。

参数:
ptList - 点集。
bLonLat - 是否是经纬度。
clipRegions - 裁剪范围。
返回:
三角网模型。

combineSkeletonByMaterial

@Deprecated
public static boolean combineSkeletonByMaterial(Model modelSrc,
                                                           Model modelResult)
已过时。 

该方法已过时,相关功能已被mergeSkeleton方法所取代。 对模型的骨架进行同材质合并。

参数:
modelSrc - 源模型。
modelResult - 结果模型。
返回:
骨架同材质合并成功返回true,否则返回false。

convexHull

public static GeoModel3D convexHull(java.util.ArrayList<GeoPoint3D> geoPnts,
                                    boolean bLonLat)
计算凸包。

参数:
geoPnts - 点集。
bLonLat - geoPnts是否是经纬度。
返回:
凸包结果GeoModel3D。

convexHull

public static GeoModel3D convexHull(Point3Ds pnts,
                                    boolean bLonLat)
计算凸包。

参数:
pnts - 点集。
bLonLat - pnts是否是经纬度。
返回:
凸包结果 GeoModel3D。

convexHull

public static Model convexHull(Model modelSrc)
计算凸包。

参数:
modelSrc - 源模型。
返回:
凸包结果。

convexHull

public static Model convexHull(Model modelSrc,
                               SkeletonID id)
计算凸包。

参数:
modelSrc - 源模型。
id - 子对象。
返回:
凸包结果。

convexHullPerSkeleton

public static Model convexHullPerSkeleton(Model modelSrc)
计算凸包:每个子对象对应一个凸包。

参数:
modelSrc - 源模型。
返回:
凸包结果。

envelop

public static java.util.ArrayList<GeoModel3D> envelop(GeoModel3D geomodel,
                                                      double dbZ)
模型拉伸闭合体。

参数:
geomodel - 模型对象。
dbZ - 拉伸参数。
返回:
闭合体。

envelop

public static java.util.ArrayList<GeoModel3D> envelop(GeoRegion3D geometry,
                                                      double dbZ)
三维面拉伸闭合体。

参数:
geometry - 三维面对象。
dbZ - 拉伸参数。
返回:
闭合体。

extractBorder

public static java.util.ArrayList<GeoRegion3D> extractBorder(GeoModel3D geoModel,
                                                             BorderType borderType)
提取边界

参数:
geoModel - 源模型
borderType - 边界类型
返回:
返回提取的模型边界GeoRegion3D对象集合。

linearExtrude

@Deprecated
public static GeoModel3D linearExtrude(Geometry geometry,
                                                  boolean bLonLat,
                                                  double height,
                                                  double twist,
                                                  double scaleX,
                                                  double scaleY)
已过时。 

线性拉伸

参数:
geometry - 待进行线性拉伸的面
bLonLat - 是否是经纬度
height - 拉伸高度
twist - 旋转角度
scaleX - 绕X轴方向缩放
scaleY - 绕Y轴方向缩放
返回:
返回GeoModel3D对象

linearExtrude

@Deprecated
public static GeoModel3D linearExtrude(Geometry geometry,
                                                  boolean bLonLat,
                                                  double height,
                                                  double twist,
                                                  double scaleX,
                                                  double scaleY,
                                                  TextureMapParameter texParam)
已过时。 

线性拉伸,可进行贴图设置。

参数:
geometry - 待进行线性拉伸的面
bLonLat - 是否是经纬度
height - 拉伸高度
twist - 旋转角度
scaleX - 绕X轴方向缩放
scaleY - 绕Y轴方向缩放
texParam - 贴图设置
返回:
返回GeoModel3D对象

linearExtrude

public static GeoModel3D linearExtrude(Geometry geometry,
                                       boolean bLonLat,
                                       LinearExtrudeParameter extrudeParameter,
                                       TextureMapParameter uvwParam)
线性拉伸,可进行贴图设置

参数:
geometry - 待进行线性拉伸的面
bLonLat - 是否是经纬度
extrudeParameter - 拉伸参数
uvwParam - 纹理设置参数
返回:

loft

public static GeoModel3D loft(Geometry geometry,
                              GeoLine3D line,
                              boolean bLonLat,
                              int Chamfer,
                              ChamferStyle style)
放样

参数:
geometry - 放样的横截面
line - 待放样的线对象
bLonLat - 是否是经纬度
Chamfer - 平滑程度
style - 倒角样式
返回:
返回GeoModel3D对象

loft

public static GeoModel3D loft(Geometry geometry,
                              GeoLine3D line,
                              boolean bLonLat,
                              int Chamfer,
                              ChamferStyle style,
                              TextureMapParameter texParam)
放样

参数:
geometry - 放样的横截面
line - 待放样的线对象
bLonLat - 是否是经纬度
Chamfer - 平滑程度
style - 倒角样式
texParam - 贴图设置
返回:
返回GeoModel3D对象

planeProjection

public static GeoRegion planeProjection(GeoModel3D model)
平面投影:仅支持投影坐标系模型

参数:
model - 源模型
返回:
投影三维面

planeProjection

public static GeoRegion3D planeProjection(GeoModel3D model,
                                          Plane plane)
平面投影

参数:
model - 源模型
plane - 平面
返回:
投影三维面

planeProjection2D

public static GeoRegion planeProjection2D(GeoModel3D model,
                                          Plane plane)
平面投影,将获得的投影转到XY上

参数:
model - 源模型
plane - 平面
返回:
投影二维面

reComputeNormal

public static boolean reComputeNormal(Model modelSrc,
                                      Model modelResult,
                                      NormalComputeMode normalMode,
                                      double dAngle)
重新计算法线

参数:
modelSrc - 源模型
modelResult - 结果模型
normalMode - 法线计算模式
dAngle - 拆分的角度阈值
返回:
是否成功

removeDuplicateVertex2

public static int removeDuplicateVertex2(Model modelSrc,
                                         Model modelResult)
移除重复顶点;结果为带属性的Index

参数:
modelSrc - 源模型
modelResult - 结果模型
返回:
返回移除的点个数

removeUnreferencedVertex

@Deprecated
public static int removeUnreferencedVertex(Model modelSrc,
                                                      Model modelResult)
已过时。 

移除孤立顶点

参数:
modelSrc - 源模型
modelResult - 结果模型
返回:
返回移除的点个数

rotateExtrude

public static GeoModel3D rotateExtrude(Geometry geometry,
                                       double angle)
旋转拉伸

参数:
geometry - 面对象(必须在平面坐标系下构建)
angle - 旋转角度
返回:
结果模型

rotateExtrude

public static GeoModel3D rotateExtrude(Geometry geometry,
                                       RotateExtrudeParameter rotParam)
旋转拉伸

参数:
geometry - 面对象(必须在平面坐标系下构建)
rotParam - 旋转拉伸参数设置
返回:
结果模型

sectionProjection

@Deprecated
public static GeoRegion sectionProjection(GeoModel3D model)
已过时。 

截面投影:仅支持投影坐标系模型

参数:
model - 源模型
返回:
返回二维几何面

sectionProjection2D

public static GeoRegion sectionProjection2D(GeoModel3D model,
                                            Plane plane)
截面投影,获得的截面转到XY上

参数:
model - 待进行截面投影的三维几何模型对象
plane - 投影平面
返回:
二维几何面GeoRegion

sectionProjection

public static GeoRegion3D sectionProjection(GeoModel3D model,
                                            Plane plane)
截面投影,获得截面。

参数:
model - 待进行截面投影的三维几何模型对象。
plane - 投影平面。
返回:
三维几何面GeoRegion3D。

sectionProjection

public static java.util.ArrayList<GeoRegion3D> sectionProjection(GeoModel3D model,
                                                                 java.util.ArrayList<Plane> planeList)
截面投影,获得截面

参数:
model - 待进行截面投影的三维几何模型对象
planeList - 裁剪平面集合
返回:
三维几何面GeoRegion3D集合

shadowVolume

public static GeoModel3D shadowVolume(GeoModel3D model,
                                      ShadowVolumeSetting param)
创建阴影体。

参数:
model - 源模型。
param - 阴影体设置参数。
返回:
结果模型。

simplify

public static boolean simplify(Model modelSrc,
                               Model modelResult,
                               double dbRatio,
                               boolean bConstrainBorder)
精细层简化。

参数:
modelSrc - 源模型。
modelResult - 简化结果(外部可以事先设置关联的EM)。
dbRatio - 简化率:即简化为原来的多少。
bConstrainBorder - 是否约束边界。
返回:
简化是否成功。

simplify

public static boolean simplify(Model modelSrc,
                               Model modelResult,
                               double dbRatio,
                               double dbThreshold)
精细层简化。

参数:
modelSrc - 源模型。
modelResult - 简化结果(外部可以事先设置关联的EM)。
dbRatio - 简化率:即简化为原来的多少。
dbThreshold - 最大简化边长:边长大于dbThreshold的,不参与简化。
返回:
简化是否成功。

simplify

public static boolean simplify(Model modelSrc,
                               Model modelResult,
                               java.util.ArrayList<SkeletonID> listIDs,
                               double[] listRatio,
                               boolean bConstrainBorder)
精细层指定子对象简化。

参数:
modelSrc - 源模型。
modelResult - 简化结果(外部可以事先设置关联的EM)。
listIDs - 指定子对象ID集合。
listRatio - 指定子对象简化率集合:即简化为原来的多少。
bConstrainBorder - 是否约束边界。
返回:
简化是否成功。

simplify

public static boolean simplify(Model modelSrc,
                               Model modelResult,
                               java.util.ArrayList<SkeletonID> listIDs,
                               double[] listRatio,
                               double[] listThreshold)
精细层指定子对象简化。

参数:
modelSrc - 源模型。
modelResult - 简化结果(外部可以事先设置关联的EM)。
listIDs - 指定子对象ID集合。
listRatio - 指定子对象简化率集合:即简化为原来的多少。
listThreshold - 指定子对象最大简化边长集合:边长大于dbThreshold的,不参与简化。
返回:
简化是否成功。

split

@Deprecated
public static int split(Model modelSrc,
                                   Model modelResult)
已过时。 

模型拆分。

参数:
modelSrc - 源模型。
modelResult - 结果模型。
返回:
拆分个数。

splitSkeleton

public static boolean splitSkeleton(Model modelSrc,
                                    Model modelResult,
                                    boolean bVertexPositionConsidered)
模型的子对象拆分。

参数:
modelSrc - 源模型。
modelResult - 结果模型。
bVertexPositionConsidered - 拆分时是否考虑顶点位置。
返回:
是否成功。

straightSkeleton

public static GeoModel3D straightSkeleton(Geometry geometry,
                                          boolean bLonLat,
                                          double dAngle)
构建坡屋顶。

参数:
geometry - 构建坡屋顶的面对象。
bLonLat - 是否是经纬度。
dAngle - 坡屋顶角度,一个Double值,值域(0.1,90),单位为度。
返回:

uvwMap

public static boolean uvwMap(GeoModel3D model,
                             TextureMapParameter texParam)
模型贴纹理:按模型整体进行纹理贴图映射。

参数:
model - 源模型。
texParam - 纹理映射参数。
返回:
是否成功。

sunlightAnalysis

public static java.util.ArrayList<SunlightAnalysisPointResult> sunlightAnalysis(Geometry3D geometry,
                                                                                GeoModel3D geoModelDes,
                                                                                SunlightAnalysisSetting param,
                                                                                boolean bLatLon)
日照分析查询。

参数:
geometry - 待查询的对象。
geoModelDes - 查询结果对象。
param - 指定的日照分析参数。
bLatLon - 是否是经纬度。
返回:
查询日照分析点集结果。

sunlightAnalysis

public static java.util.ArrayList<SunlightAnalysisPointResult> sunlightAnalysis(Point3Ds ptList,
                                                                                SunlightAnalysisSetting param,
                                                                                boolean bLatLon)
三维点日照分析查询。

参数:
ptList - 待查询的点集。
param - 指定的日照分析参数。
bLatLon - 是否是经纬度。
返回:
查询日照分析点集结果。

skylineSectorBody

public static GeoModel3D skylineSectorBody(GeoLine3D line3D,
                                           Point3D pntViewer,
                                           double dHeight,
                                           boolean bLatLon)
获取天际线与观察点构成的闭合体。

注意:目前仅用于WebGL端构建实体。

参数:
line3D - 天际线分析结果线,不含视点。
pntViewer - 相机视点。
dHeight - 闭合体的拉伸高度。
bLatLon - 是否是经纬度 。
返回:
创建后的闭合体。

viewShedBody

public static GeoModel3D viewShedBody(java.util.ArrayList<Point3Ds> point3Dlist,
                                      Point3D pntViewer,
                                      double dRadius,
                                      ViewShedType type,
                                      boolean bLatLon)
获取可视域闭合体。

注意:目前仅用于WebGL端构建实体。

参数:
point3Dlist - 可视域球面顶点数组。
pntViewer - 相机视点。
dRadius - 可视域半径。
type - 闭合体类型。
bLatLon - 是否是经纬度。
返回:
创建后的闭合体。

split

@Deprecated
public static int split(Model modelSrc,
                                   Model modelResult,
                                   double dThreshold)
已过时。 

模型拆分。

参数:
modelSrc - 源模型。
modelResult - 结果模型。
dThreshold - 距离阈值,即距离小于此值的子对象合并为一个对象。
返回:
拆分个数。

mergeSkeleton

public static boolean mergeSkeleton(Model modelSrc,
                                    Model modelResult,
                                    boolean bHasLOD)
根据材质合并骨架。

参数:
modelSrc - 源模型。
modelResult - 结果模型。
bHasLOD - 是否存在lod。
返回:
是否合并成功。true表示合并成功,false表示合并失败。

createBuffer

public static Geometry createBuffer(Geometry geometry,
                                    boolean isLonLat,
                                    BufferParameter parameter)
三维缓冲,支持三维线、三维面缓冲(拓展)成三维面;支持三维线、三维面、模型缓冲(拓展)成三维实体模型。也支持二维线、面数据缓冲设置。

参数:
geometry - 二、三维线、面及模型对象。
isLonLat - 是否支持经纬度
parameter - 缓冲参数设置
返回:
获得二、三维面或三维实体模型。

removeDuplicateTriangle

public static boolean removeDuplicateTriangle(Skeleton skeleton)
骨架移除重复三角形。

参数:
skeleton - 要操作的模型骨架。
返回:
成功则返回移除重复三角形的骨架。

correctTopology

public static boolean correctTopology(Skeleton skeleton)
骨架三角网拓扑校正。

参数:
skeleton - 指定进行三角网拓扑校正的骨架。
返回:
成功则返回进行三角网拓扑校正的骨架。

buildTIM

public static GeoTIM buildTIM(DatasetVector pDatasetVector,
                              java.lang.String strFieldName)
构建不规则四面体网格

参数:
pDatasetVector - 待构建不规则四面体网格的点数据集
strFieldName - 特征字段名
返回:
得到不规则四面体,需要将GeoTIM转成GeoModel再存储。

buildTIM

public static GeoTIM buildTIM(java.util.HashMap<Point3D,java.lang.Double> dicPoints,
                              boolean bLatLon)
构建不规则四面体网格

参数:
dicPoints - 点对象集合。键值为三维点对象,值为特征值。
bLatLon - 是否是经纬度
返回:
得到不规则四面体,需要将GeoTIM转成GeoModel再存储。

mirror

public static boolean mirror(GeoModel3D model,
                             Plane plane)
镜像。可实现根据一个平面对模型镜像复制。

参数:
model - 进行镜像复制的三维模型对象。
plane - 指定一个平面。
返回:
返回true,则模型镜像复制完成。

mosaic

public static boolean mosaic(GeoModel3D model,
                             java.util.ArrayList<Geometry> mosaicRegionList)
获取三角网操作中模型镶嵌信息,支持模型与矢量面进行镶嵌

参数:
model - 模型对象
mosaicRegionList - 进行镶嵌的矢量面集合
返回:
返回true,则模型与矢量面进行镶嵌完成。

correctNonManifold

public static boolean correctNonManifold(Skeleton skeleton,
                                         java.util.ArrayList<java.util.HashMap<Point3D,Point3D>> manifoldLines,
                                         java.util.ArrayList<Point3D> points)
校正非流形的骨架。 实例化对象后使用,会自动判断骨架。如果校正后满足闭合条件,则骨架是闭合的;如果不满足,判断骨架任然不闭合。

参数:
skeleton - 进行校正的骨架。
manifoldLines - 构成骨架有问题的棱角边线集合,即有问题边。键为有问题的某一边线的起始点,值为该边线的终止点。
points - 有问题的点集合。
返回:
校正成功后,如果满足闭合条件,则骨架处理成闭合的。返回false,则校正失败。

geometryMatch

public static java.util.ArrayList<Geometry3D> geometryMatch(GeoModel3D geoModel,
                                                            java.util.ArrayList<Geometry> geometryList,
                                                            MatchParameter matchParam)
二维数据通过model匹配成三维数据。

参数:
geoModel - 用于查询匹配的模型。
geometryList - 查询的二维数据的集合。
matchParam - 置匹配的参数。点数据集不用设置采样距离。
返回:
成功则返回匹配后的三维矢量数据集合。

loft

public java.util.ArrayList<GeoRegion3D> loft(GeoLine offsetSection,
                                             GeoLine3D geoLine,
                                             boolean bLonLat,
                                             boolean bGroup)
多级边坡放样,支持截面为线对象,依据道路边线放样为三维边坡面。

参数:
offsetSection - 用于多级边坡放样的矢量线,支持二、三维矢量线数据,可表达沿道边线。必须在平面坐标系下构建。
geoLine - 边坡的截面样式,用三维线表达。
bLonLat - 用于放样的矢量线数据的坐标系是否是经纬度。
bGroup - 放样的多级边坡是否进行打组。false表示不打组,即多级边坡是不同的对象,可以设置不同的纹理贴图;true表示打组,即多级边坡为一个对象。
返回:

makeSurfaceMesh

public static GeoModel3D makeSurfaceMesh(SurfaceMeshParameter parameter)
参数化表面建模。

参数:
parameter - 表面建模参数化设置。
返回:
成功则返回三维模型对象;返回null,表示建模失败。

textureRemapping

public static boolean textureRemapping(Model srcModel,
                                       Model desModel)
模型数据纹理重映射。

参数:
srcModel - 用于纹理重映射的模型对象。
desModel - 纹理重映射后的模型对象。
返回:
一个bool值,表示纹理重映射是否成功。

removeDuplicateVertex2WithNormal

public int removeDuplicateVertex2WithNormal(Skeleton skeleton)
移除重复点保留法线。

参数:
skeleton - 骨架
返回:
移除的点个数

combinePolygon

public static java.util.ArrayList<GeoRegion3D> combinePolygon(java.util.ArrayList<GeoRegion3D> regions,
                                                              boolean bLonLat,
                                                              BorderType borderType,
                                                              double dulplicateVerticesThreshold)
支持多个三维面合并成一个。

参数:
regions - 用于合并的三维面对象集合。
bLonLat - 判断是否是经纬度坐标。
borderType - 指定约束边界类型。
dulplicateVerticesThreshold - 设置节点插值阈值,单位:米。
返回:
合并成功,获得合并后的三维面对象集合。

loft

public static GeoModel3D loft(Geometry geometry,
                              GeoLine3D line,
                              boolean bLonLat,
                              LoftParameter loftParams,
                              TextureMapParameter uvwParam)
重载接口loft支持放样


makeRegion3D

public static GeoRegion3D makeRegion3D(Region3DParameter expressionParam)
支持公式参数化构建矢量面


removeRedundantVertex

public static int removeRedundantVertex(Model modelSrc,
                                        Model modelResult,
                                        double dThreshold)
移除共面的冗余点

参数:
dThreshold - 容差,点距离平面的距离小于该值,就认为是共面的,需要移除该点

removeRedundantVertex

public static int removeRedundantVertex(Skeleton skeleton,
                                        double dThreshold)
根据误差阈值,移除 Skeleton 上共面的冗余顶点。

参数:
skeleton - 待移除冗余顶点的骨架
dThreshold - 误差阈值。
返回:
返回移除了多少个点。

splitSkeleton

public static boolean splitSkeleton(Model srcModel,
                                    Model desModel,
                                    SplitParameter splitParameter)
骨架拆分


computeConcaveHull

public static GeoRegion3D computeConcaveHull(Point3Ds pnts,
                                             boolean bLonLat,
                                             double dConcavity,
                                             double dLengthThreshold)
计算凹多边形

参数:
pnts - 三维点集。
bLonLat - 标识pnts是否是经纬度。
dConcavity - 凹度,越大越接近凸包。
dLengthThreshold - 长度阈值,越大越接近凸包。
返回:

envelop

public static java.util.ArrayList<GeoModel3D> envelop(Geometry3D geometry3D,
                                                      EnvelopParameter parameter)
三维面几何对象构建闭合体,支持非经纬度坐标三维面几何对象构建闭合体。

参数:
geometry3D - 三维面几何对象
parameter - 闭合拉伸体参数,支持设置是否为经纬度,拉伸高程等参数。
返回:
构建的闭合体对象集合

tessellate

public static GeoModel3D tessellate(Geometry3D geometry3D,
                                    boolean isLonLat,
                                    TessellationParameter param)
通过细分的方式将Geometry3D转化为模型。

参数:
geometry3D - 参数化对象
isLonLat - 是否是经纬度
param - 模型细分参数
返回:
模型对象