com.supermap.data.processing

类 OSGBCacheBuilder

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.processing.OSGBCacheBuilder
  • 所有已实现的接口:
    IDisposable


    public class OSGBCacheBuilder
    extends com.supermap.data.InternalHandleDisposable
    三维切片缓存(OSGB/S3M)生成类,通过该类可将模型数据集或CAD数据集生成OSGB/S3M格式的三维切片缓存文件。
    • 构造器详细资料

      • OSGBCacheBuilder

        public OSGBCacheBuilder()
        构造一个新的OSGBCacheBuilder对象。
      • OSGBCacheBuilder

        public OSGBCacheBuilder(DatasetVector dataset,
                                String outputFolder,
                                String name)
        根据指定的DatasetVector对象、输出目录及缓存名称,构造一个新的OSGBCacheBuilder对象。
        参数:
        dataset - 指定的recordest对象。
        outputFolder - 指定的输出路径。
        name - 指定的缓存名称。
    • 方法详细资料

      • getIsDistributed

        public boolean getIsDistributed()
      • setIsDistributed

        public void setIsDistributed(boolean isDistributed)
      • dispose

        public void dispose()
        释放OSGBCacheBuilder对象所占的资源。
      • getDataset

        public DatasetVector getDataset()
        获取生成三维切片缓存的数据集对象。
        返回:
        生成三维切片缓存的数据集对象。
      • setDataset

        public void setDataset(DatasetVector value)
        设置生成三维切片缓存的数据集对象。
        参数:
        value - 生成三维切片缓存的数据集对象。
      • getBounds

        public Rectangle2D getBounds()
        获取缓存地理范围。
        返回:
        缓存地理范围。
      • setBounds

        public void setBounds(Rectangle2D value)
        设置缓存地理范围。
        参数:
        value - 缓存地理范围。
      • getCacheName

        public String getCacheName()
        获取缓存名称,不包含路径及后缀。
        返回:
        缓存名称。
      • setCacheName

        public void setCacheName(String name)
        设置缓存名称,不包含路径及后缀。
        参数:
        name - 缓存名称。
      • getDynamicPrjCoordSysType

        public PrjCoordSysType getDynamicPrjCoordSysType()
        获取动态投影信息。
        返回:
        动态投影信息。
      • setDynamicPrjCoordSysType

        public void setDynamicPrjCoordSysType(PrjCoordSysType prjType)
        设置动态投影信息。
        参数:
        prjType - 动态投影信息。
      • setFileType

        public void setFileType(CacheFileType fileType)
        设置生成缓存时的数据格式
        参数:
        fileType - 生成缓存时的数据格式 S3MB or S3MBlock。
      • getFileType

        public CacheFileType getFileType()
        获取生成缓存时的数据格式
        返回:
        生成缓存时的数据格式 S3MB or S3MBlock。
      • setIsCalNormal

        public void setIsCalNormal(boolean value)
        设置缓存是否重新计算法线。
      • getIsCalNormal

        public boolean getIsCalNormal()
        缓存是否重新计算法线。
        返回:
        osgb缓存是否重新计算法线。
      • getOutputFolder

        public String getOutputFolder()
        获取输出路径。
      • setOutputFolder

        public void setOutputFolder(String name)
        设置输出路径。
        参数:
        name -
      • getOutputScale

        public double getOutputScale()
        获取缓存的比例尺大小。
        返回:
        缓存的比例尺大小。
      • setOutputScale

        public void setOutputScale(double value)
        设置缓存的比例尺大小。
        参数:
        value -
      • getProcessType

        public ProcessFileType getProcessType()
        获取生成缓存时的文件处理类型。
        返回:
        生成缓存时的文件处理类型。
      • setProcessType

        public void setProcessType(ProcessFileType value)
        设置生成缓存时的文件处理类型。
        参数:
        value -
      • setRecordset

        public void setRecordset(Recordset value)
        设置缓存的记录集。
        参数:
        value - 缓存的记录集。
      • getRecordset

        public Recordset getRecordset()
        获取缓存的记录集。
        返回:
        缓存的记录集。
      • setTileWidth

        public void setTileWidth(double value)
        设置OSGB瓦片大小。
        参数:
        value - OSGB瓦片大小。
        抛出:
        IllegalStateException - 当前对象已被释放。 =
      • getTileWidth

        public double getTileWidth()
        获取OSGB缓存切片大小。
      • setLODSize

        public void setLODSize(int value)
        设置LOD层级数量。
        参数:
        value - LOD层级数量。
      • getLODSize

        public int getLODSize()
        获取LOD层级数量。
      • setMipmapCount

        public void setMipmapCount(int value)
        设置纹理Mipmap数量。
      • getMipmapCount

        public int getMipmapCount()
        获取纹理Mipmap数量。
        返回:
        纹理Mipmap数量。
      • setObjectFiltrateThreshold

        public void setObjectFiltrateThreshold(double dbValue)
        设置粗糙层对象过滤阀值。
      • getObjectFiltrateThreshold

        public double getObjectFiltrateThreshold()
        获取粗糙层对象过滤阀值。
        返回:
        粗糙层对象过滤阀值。
      • setSimplifyPercent

        public void setSimplifyPercent(Map<Integer,Double> mapPercent)
        设置LOD层网格简化率。

        10i(2021)版本修改了简化率的实现。如设置3层LOD,第一层、第二层、第三层分别对应的75%、50%、25%。这里的75%表示简化至75%,即第一层LOD的模型是精细层模型简化了25%后的结果。

      • getSimplifyPercent

        public HashMap<Integer,Double> getSimplifyPercent()
        获取LOD层网格简化率。

        10i(2021)版本修改了简化率的实现。如设置3层LOD,第一层、第二层、第三层分别对应的75%、50%、25%。这里的75%表示简化至75%,即第一层LOD的模型是精细层模型简化了25%后的结果。

      • setTilePyramidSplitType

        public void setTilePyramidSplitType(PyramidSplitType value)
        设置单个切片的金字塔剖分类型。
        参数:
        value -
      • getTilePyramidSplitType

        public PyramidSplitType getTilePyramidSplitType()
        获取单个切片的金字塔剖分类型。
        返回:
        单个切片的金字塔剖分类型。
      • getIsInstance

        public boolean getIsInstance()
        是否实例化。
        返回:
        是否实例化。
      • setIsInstance

        public void setIsInstance(boolean bInstance)
        设置是否实例化。
      • setConnectionInfo

        public void setConnectionInfo(TileStorageConnection connInfo)
        设置生成时连接mongo数据库的信息。
        参数:
        connInfo - 生成时连接mongo数据库的信息。
      • setStorageType

        public void setStorageType(StorageType storageType)
        设置瓦片的存储类型。
        参数:
        storageType - 瓦片的存储类型。
      • getStorageType

        public StorageType getStorageType()
        获取瓦片的存储类型。
        返回:
        瓦片的存储类型。
      • setTextureSharing

        public void setTextureSharing(boolean bShare)
        设置纹理是否公用。
      • getTextureSharing

        public boolean getTextureSharing()
        获取纹理是否公用。
      • getTileBounds

        public ArrayList<Rectangle2D> getTileBounds()
        获取每个生成缓存切片的Bounds。
      • setDatasetArray

        public void setDatasetArray(DatasetVector[] arrDataset)
        设置多个数据集生成一个缓存文件。
        参数:
        arrDataset - 数据集集合。
      • setOutFilePassword

        public void setOutFilePassword(String password)
        设置三维瓦片密码,生成模型瓦片时,仅瓦片的文件类型为S3MBlock时有效。
        参数:
        password - 密码。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • build

        public boolean build()
        生成三维切片缓存(OSGB/S3M)。
        返回:
        true表示生成缓存成功。
      • addSteppedListener

        public void addSteppedListener(SteppedListener l)
        添加一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public void removeSteppedListener(SteppedListener l)
        移除一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • getProcessThreadsCount

        public int getProcessThreadsCount()
        获取生成缓存的线程数。
      • setProcessThreadsCount

        public void setProcessThreadsCount(int value)
        设置生成缓存的线程数。
        参数:
        value - 待设置线程数。
      • getTileInfosArray

        public ArrayList<TileInfos> getTileInfosArray()
        获取每个生成缓存切片的信息。
      • toConfigAndIndexFile

        public boolean toConfigAndIndexFile(String path)
        将三维切片缓存的所有切片信息直接写入到配置文件中,并将属性字段索引写入索引文件。使用该方法不生成缓存切片。

        使用场景:该方法用于客户端向服务器请求切片文件,服务器端实时切缓存时使用。

        参数:
        path - 指定的保存配置文件的路径。
        返回:
        一个布尔值,表示是否成功保存缓存配置文件,即.scp 文件,若保存缓存配置文件成功返回 true,否则返回 false。
      • buildWithoutConfigFile

        public boolean buildWithoutConfigFile()
        生成三维切片缓存(OSGB/S3M)。使用该方法创建缓存不会生成配置文件。

        使用场景:该方法用于服务器端接收客户端请求时使用。

        返回:
        true表示创建缓存成功,false表示创建缓存失败。
      • buildTiles

        public boolean buildTiles()
        多进程环境下生成缓存(不生成配置文件).
        返回:
        是否生成成功
      • generateConfigFile

        public static boolean generateConfigFile(String configFileName,
                                                 Point3D position,
                                                 PrjCoordSys value,
                                                 String[] fileNames,
                                                 TileStorageConnection mongoConn)
        生成scp索引文件。
        参数:
        configFileName - 指定的scp文件名。
        position - 指定的插入点坐标。
        value - 指定投影信息。
        fileNames - 指定根节点路径。
        mongoConn - 读数据库中实体信息所需的数据库连接信息
        返回:
        false表示失败,true表示成功。
      • generateConfigFile

        public static boolean generateConfigFile(String configFileName,
                                                 Point3D position,
                                                 PrjCoordSys value,
                                                 boolean bNEU,
                                                 String[] fileNames)
        生成scp索引文件,此方式支持NEU(测站地方空间直角)坐标系。
        参数:
        configFileName - 指定的scp文件名。
        position - 指定的插入点坐标。
        value - 指定投影信息。
        bNEU - 是否为地方空间直角系。
        fileNames - 根节点路径。
        返回:
        表示是否成功生成索引文件。false表示失败,true表示成功
      • generateConfigFile

        public static boolean generateConfigFile(String configFileName,
                                                 Point3D position,
                                                 PrjCoordSys value,
                                                 CoordSysTransParameter coordSysTransParam,
                                                 CoordSysTransMethod coordSysTransMethod,
                                                 ArrayList<String> fileNames)
        生成scp索引文件。
        参数:
        configFileName - 指定的scp文件名。
        position - 指定的插入点坐标。
        value - 指定投影信息。
        coordSysTransParam - 指定的投影转换参数。
        coordSysTransMethod - 指定的投影转换方法。
        fileNames - 指定根节点路径。
        返回:
        表示是否成功生成索引文件。false表示失败,true表示成功。
      • generateConfigFile

        public static boolean generateConfigFile(String configFileName,
                                                 Point3D position,
                                                 PrjCoordSys value,
                                                 CoordSysTransParameter coordSysTransParam,
                                                 CoordSysTransMethod coordSysTransMethod,
                                                 boolean bNEU,
                                                 ArrayList<String> fileNames)
        生成scp索引文件。
        参数:
        configFileName - 指定的scp文件名。
        position - 插入点坐标。
        value - 投影信息。
        coordSysTransParam - 投影转换参数。
        coordSysTransMethod - 投影转换方法。
        bNEU - 是否为地方空间直角坐标系。
        fileNames - 指定根节点路径。
        返回:
        表示是否成功生成索引文件。 false表示失败,true表示成功。
      • generateConfigFile

        public static boolean generateConfigFile(String configFileName,
                                                 Point3D position,
                                                 PrjCoordSys value,
                                                 PrjCoordSys valueDes,
                                                 CoordSysTransParameter coordSysTransParam,
                                                 CoordSysTransMethod coordSysTransMethod,
                                                 ArrayList<String> fileNames)
        生成scp索引文件。
        参数:
        configFileName - 指定的scp文件名。
        position - 指定的插入点坐标。
        value - 指定的源投影信息。
        valueDes - 指定的目标投影信息。
        coordSysTransParam - 指定的投影转换参数。
        coordSysTransMethod - 指定的投影转换方法。
        fileNames - 指定根节点路径。
        返回:
        表示是否成功生成索引文件。false表示失败,true表示成功。
      • combineOSGBFile

        public static boolean combineOSGBFile(String outputFileName,
                                              ArrayList<String> fileNames,
                                              double dPercent,
                                              double dDistance,
                                              float fErrorValue)
        合并OSGB文件,在指定OSGB模型的基础上,合并一层粗糙层。
        参数:
        outputFileName - 合并后的OSGB文件名。
        fileNames - 需要合并的OSGB文件名称列表。
        dPercent - 指定的简化率,取值范围[0,1],0表示所有的网格都不简化,1表示当模型网格的距离在指定的阈值内全部简化,0-1之间表示当模型网格的距离在指定的阈值内按照指定的百分比进行简化, 比如0.5表示,假如模型的网格距离在指定的阈值内的数量有100个,那么只简化50个。
        dDistance - 指定的切换距离,合并后粗糙层和原始OSGB文件的相机切换距离。
        fErrorValue - 指定的网格简化阈值。当模型网格距离小于指定的阈值,就会被简化。
        返回:
        一个布尔值,true表示合并成功,false表示合并失败。
      • osgbFile2MongoDB

        public static boolean osgbFile2MongoDB(String scpFileName,
                                               TileStorageConnection mongoConn,
                                               String scpMongoFile)
        OSGB缓存文件导入MongoDB数据库 。
        参数:
        scpFileName - scp文件全路径名,该文件包含osgb缓存文件信息。
        mongoConn - mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。
        scpMongoFile - 新生成的scp文件全路径名,生成成功后通过该文件直接打开mongodb中的缓存。
        返回:
        一个布尔值,true表示导入成功,false表示导入失败。
      • osgbFile2MongoDB

        public static boolean osgbFile2MongoDB(String scpFileName,
                                               TileStorageConnection mongoConn,
                                               String scpMongoFile,
                                               TextureCompressType textureCompressType)
        OSGB缓存文件导入MongoDB数据库 。
        参数:
        scpFileName - scp文件全路径名,该文件包含osgb缓存文件信息。
        mongoConn - mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。
        scpMongoFile - 新生成的scp文件全路径名,生成成功后通过该文件直接打开mongodb中的缓存。
        textureCompressType - 纹理压缩方式
        返回:
        true表示导入成功,false表示导入失败。
      • b3dmFile2MongoDB

        public static boolean b3dmFile2MongoDB(String scpFileName,
                                               TileStorageConnection mongoConn)
        3DTiles缓存文件导入MongoDB数据库 。
        参数:
        scpFileName - scp文件全路径名,该文件包含3DTiles缓存文件信息。
        mongoConn - mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。
        返回:
        一个布尔值,true表示导入成功,false表示导入失败。
      • buildTile

        public boolean buildTile(HashMap<String,int[]> geoModelIDs,
                                 boolean bCombineModels)
        模型数据集对应ID模型生成切片。
        参数:
        geoModelIDs - 待生成切片的模型ID集合。
        bCombineModels - 模型是否打组。
        返回:
        一个布尔值,true表示生成成功,false表示生成失败。
      • getPosition

        public Point3D getPosition()
        获取插入点的位置。
        返回:
        插入点的位置。
      • setPosition

        public void setPosition(Point3D value)
        设置插入点的位置。
        参数:
        value - 指定插入点的位置。
      • getExtrudeRegionTexFromVoxelGrid

        public static ArrayList<TextureData> getExtrudeRegionTexFromVoxelGrid(Geometry geometry,
                                                                              double height,
                                                                              DatasetVolume volume,
                                                                              ColorDictionary table)
        支持根据矢量面及拉伸高度从对应体元栅格中提取纹理,并支持设置颜色表。 提取的纹理默认有三个,在列表的第0个纹理数据对应顶部纹理,第1个纹理数据对应侧面纹理,第2个纹理数据对应底部纹理。 如果拉伸的高度超出了体元栅格的高度,那么顶部纹理取值为null,这时需要进行判断,再作处理;而侧面超出的部分颜色都取白色。
        参数:
        geometry - 做为从体元栅格中提取纹理的参照面,二、三维面数据都可以。
        height - 对矢量面设置拉伸的高度值。
        volume - 对应的体元栅格数据。
        table - 设置的颜色表,该表内颜色值范围对应体元栅格的极值范围。
      • isRemoveNormal

        public boolean isRemoveNormal()
        获取是否移除原始数据法线。
      • setRemoveNormal

        public void setRemoveNormal(boolean value)
        设置是否移除原始数据法线。
        参数:
        value - 指定是否移除。
      • setTileInfos

        public void setTileInfos(TileInfos value)
        生成指定瓦片信息对应的切片
        参数:
        value - 三维瓦片信息。
      • setTileInfos

        public void setTileInfos(ArrayList<TileInfos> infos)
        设置每个三维瓦片的信息。
      • buildWithTileClip

        @Deprecated
        public boolean buildWithTileClip()
        已过时。 
      • isHasOutLine

        public boolean isHasOutLine()
        是否有边框线
      • setHasOutLine

        public void setHasOutLine(boolean value)
        设置是否有边框线
      • isCombineRepeatTextures

        public boolean isCombineRepeatTextures()
        得到重复贴图打组
      • setCombineRepeatTextures

        public void setCombineRepeatTextures(boolean value)
        设置重复贴图打组
      • setLimitTextureSize

        public void setLimitTextureSize(CacheLimitTextureSize value)
        设置纹理大小限制
      • setCompressedTextureType

        public void setCompressedTextureType(CompressedTextureType value)
        设置纹理压缩格式
      • getCompressedTextureType

        public CompressedTextureType getCompressedTextureType()
        获取纹理压缩格式
      • getTextureProcessingType

        public TextureProcessingType getTextureProcessingType()
        获取纹理处理方式
        返回:
      • setTextureProcessingType

        public void setTextureProcessingType(TextureProcessingType processingType)
        设置纹理处理方式
        参数:
        processingType -
      • getCategoryField

        public String getCategoryField()
        获取特征值字段
        返回:
      • setCategoryField

        public void setCategoryField(String categoryFieldName)
        设置特征值字段
        参数:
        categoryFieldName -
      • getVertexWeightMode

        public VertexWeightMode getVertexWeightMode()
        获取顶点权重模式
        返回:
      • setVertexWeightMode

        public void setVertexWeightMode(VertexWeightMode modeType)
        设置顶点权重模式
        参数:
        modeType -
      • getVertexOptimizationType

        public VertexOptimizationType getVertexOptimizationType()
        获取顶点优化方式
        返回:
      • setVertexOptimizationType

        public void setVertexOptimizationType(VertexOptimizationType vertexOptimizationType)
        设置顶点优化方式
        参数:
        vertexOptimizationType -
      • getUserIDField

        public String getUserIDField()
        获取对象ID字段
        返回:
      • setUserIDField

        public void setUserIDField(String userIDName)
        设置对象ID字段
        参数:
        userIDName -
      • isLogEnable

        public boolean isLogEnable()
        获取是否输出错误日志.
      • setLogEnable

        public void setLogEnable(boolean isErrorLogOut)
        设置是否输出错误日志.
      • getFieldsNames

        public String[] getFieldsNames()
        生成缓存时,获取保留指定属性字段。
      • setFieldsNames

        public void setFieldsNames(String[] fieldsNames)
        生成缓存时,设置保留指定属性字段。
      • combineRootNodes

        public static boolean combineRootNodes(String inScpFilePath,
                                               String saveSCPName,
                                               int combineLevel,
                                               HashMap<Integer,Double> simplifyPercent,
                                               int threadCount,
                                               float objectFiltrateThreshold)
        模型缓存合并根节点(不合并图层)
        参数:
        inScpFilePath - 精细模型缓存scp全路径。
        saveSCPName - 目标文件名。合并结果会默认在源缓存路径下,新建一个Root文件夹,用来存放合并后的缓存数据;而目标文件名是用来作为合并后的缓存索引(.scp)文件名。
        combineLevel - 合并根节点层级数,默认1层,层级数值域[1,4]。
        simplifyPercent - 设置简化率,一个字典对象。键值为合并根节点的层级数,值为简化率的百分比数值。
        threadCount - 线程数
        objectFiltrateThreshold - 像素过滤阈值。
        返回:
      • combineRootNodes

        public static boolean combineRootNodes(String[] inScpFilePaths,
                                               String saveSCPFullPath,
                                               int combineLevel,
                                               HashMap<Integer,Double> simplifyPercent,
                                               int threadCount)
        多个模型缓存合并根节点(合并图层)
        参数:
        inScpFilePaths - 进行合并图层的精细模型缓存SCP全路径集合。
        saveSCPFullPath - 输出路径。多个精细模型缓存合并成一个缓存,输出路径下会存放原始缓存数据和scp索引文件,如果设置了合并根节点层级数,会新建一个Root文件夹,用来存放合并后的缓存数据。
        combineLevel - 合并根节点层级数,默认1层,层级数值域[1,4]。
        simplifyPercent - 设置简化率,一个字典对象。键值为合并根节点的层级数,值为简化率的百分比数值。
        threadCount - 线程数
        返回:
        成功会在指定路径下生成合并后的缓存数据。
      • getTileHeight

        public double getTileHeight()
        获取三维切片缓存的瓦片的高度.
        返回:
        获取高度值。
      • setTileHeight

        public void setTileHeight(double setTileHeight)
        设置三维切片缓存的瓦片高度,与金字塔剖分类型-八叉树一起使用.
        参数:
        setTileHeight - 设置三维切片缓存的瓦片高度。
      • getMultiTextureMode

        public MultiTextureMode getMultiTextureMode()
        获取模型生成缓存时,纹理设置生成单重纹理或者多重纹理。
        返回:
        单重纹理或者多重纹理
      • setMultiTextureMode

        public void setMultiTextureMode(MultiTextureMode mode)
        设置模型生成缓存时,纹理设置生成单重纹理或者多重纹理。
        参数:
        mode - 单重纹理或者多重纹理
      • append

        public boolean append(UpdateType updateType,
                              boolean bCreateConfigFile)
        模型缓存局部更新。

        1)目前支持根据Bounds更新和根据模型ID更新。 2)需要注意的是不管根据Bounds更新还是模型ID更新,缓存路径、缓存名称、插入点坐标、瓦片边长、缓存类型、纹理压缩方式等参数都需要都要和原始缓存的参数保持一致。 3)根据更新的数据情况,如果有属于新增和删减Tile数量的情况,append的bCreateConfigFile参数需要设置为true。

        根据Bounds更新的实现思路: 1.获取更新的数据集Bounds, 2.调用OSGBCacheBuilder.append进行更新。

        根据模型ID更新的实现思路: 1.通过OSGBCacheBuilder.UpdateObjectsInfoArray接口,设置更新后的结果数据集和待修改的ID, 2.再调用OSGBCacheBuilder.append进行更新。

        参数:
        updateType - S3M瓦片局部更新类型。包括更新几何数据、属性数据、全部更新三种更新类型。
        bCreateConfigFile - 是否创建配置文件。
        返回:
        一个bool值,表示模型缓存局部更新是否成功。
      • getAttributeExtentType

        public AttributeExtentType getAttributeExtentType()
        获取属性存储类型,包括s3md和attribute两种类型。
        返回:
        属性存储类型
      • setAttributeExtentType

        public void setAttributeExtentType(AttributeExtentType type)
        设置属性存储类型,包括s3md和attribute两种类型。
        参数:
        type - 属性存储类型
      • setCacheVersion

        public void setCacheVersion(S3MVersion version)
        设置S3M版本。
        参数:
        version - S3M版本
      • getAssociateMaterialFile

        public String getAssociateMaterialFile()
        获取生成S3M缓存关联材质文件路径。生成的缓存,在游戏引擎中会使用所关联的材质进行渲染。

        目前仅支持ue和unity导出的*.json的材质文件。

        从ue中导出的json文件只有关联关系,生成的缓存在ue上加载才有对应的材质效果。

        从unity导出的json文件带有PBR材质的效果,可以直接在webgl端使用。

        返回:
        生成S3M缓存关联材质文件路径
      • setAssociateMaterialFile

        public void setAssociateMaterialFile(String assocaiateFile)
        设置生成S3M缓存关联材质文件路径。生成的缓存,在游戏引擎中会使用所关联的材质进行渲染。

        目前仅支持ue和unity导出的*.json的材质文件。

        从ue中导出的json文件只有关联关系,生成的缓存在ue上加载才有对应的材质效果。

        从unity导出的json文件带有PBR材质的效果,可以直接在webgl端使用。

        参数:
        assocaiateFile - 生成S3M缓存关联材质文件路径
      • getSecondTextureType

        public SecondTextureType getSecondTextureType()
        获取第二重纹理类型
      • setSecondTextureType

        public void setSecondTextureType(SecondTextureType secondTextureType)
        设置第二重纹理类型
      • getMaterialType

        public MaterialType getMaterialType()
        获取材质类型。
        返回:
        材质类型
      • setMaterialType

        public void setMaterialType(MaterialType materialType)
        设置材质类型。
        参数:
        materialType - 材质类型
      • getGlobeType

        public GlobeType getGlobeType()
        获取球体类型
        返回:
      • setGlobeType

        public void setGlobeType(GlobeType globeType)
        设置球体类型
        参数:
        globeType -
      • isCalTilingTextureCoords

        public boolean isCalTilingTextureCoords()
        是否按box映射再生成一重纹理
      • setCalTilingTextureCoords

        public void setCalTilingTextureCoords(boolean isCalTilingTextureCoords)
        设置是否按box映射再生成一重纹理 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
      • getSideTilingU

        public double getSideTilingU()
        获取侧面U值
      • setSideTilingU

        public void setSideTilingU(double sideTilingU)
        设置侧面U值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
      • getSideTilingV

        public double getSideTilingV()
        获取侧面V值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
      • setSideTilingV

        public void setSideTilingV(double sideTilingV)
        设置侧面V值
      • isCalTangentAndBinormal

        public boolean isCalTangentAndBinormal()
        获取获是否重新计算切线、副切线
      • setCalTangentAndBinormal

        public void setCalTangentAndBinormal(boolean isCalTangentAndBinormal)
        设置是否重新计算切线、副切线
      • setEncryptCoordinatesSetting

        public void setEncryptCoordinatesSetting(EncryptCoordinatesSetting encryptCoordinatesSetting)
        设置坐标加密参数。
        参数:
        encryptCoordinatesSetting - 坐标加密参数。
        抛出:
        IllegalStateException - 当前对象已被释放。
        从以下版本开始:
        11.2.0。
      • upgradeS3MB

        @Deprecated
        public static boolean upgradeS3MB(S3MVersion s3mVersion,
                                                       String srcScpPath,
                                                       String outputFolder,
                                                       UpgradeS3MParameters params)
        已过时。 
        S3M版本升级(支持纹理压缩类型以及几何压缩类型)

        支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。 S3m3.0为椭球场景缓存数据。

        三维切片缓存不支持Draco压缩,所以升级时,如果数据是三维切片缓存,几何压缩不可选择Draco压缩。

        参数:
        s3mVersion - S3M版本号
        srcScpPath - 待升级的缓存数据scp全路径
        outputFolder - 升级后的缓存数据输出路径
        params - S3M版本升级的参数设置,包括纹理压缩和几何压缩设置。
        返回:
        一个bool值,true表示S3M版本升级成功,在输出目录下生成升级后的缓存数据;false表示升级失败。
      • upgradeS3MB

        public static boolean upgradeS3MB(String srcScpPath,
                                          String outputFolder,
                                          UpgradeS3MParameters params)
        S3M版本升级(支持纹理压缩类型以及几何压缩类型)

        支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。 S3m3.0为椭球场景缓存数据。

        三维切片缓存不支持Draco压缩,所以升级时,如果数据是三维切片缓存,几何压缩不可选择Draco压缩。

        参数:
        srcScpPath - 待升级的缓存数据scp全路径
        outputFolder - 升级后的缓存数据输出路径
        params - S3M版本升级的参数设置
        返回:
        一个bool值,true表示S3M版本升级成功,在输出目录下生成升级后的缓存数据;false表示升级失败。
      • upgradeS3MB

        public static boolean upgradeS3MB(TileStorageConnection inputConnection,
                                          TileStorageConnection outputConnection,
                                          UpgradeS3MParameters params)
        对存入MongoDB内的三维瓦片进行S3M版本升级(支持纹理压缩类型以及几何压缩类型)。

        支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。S3m3.0为椭球场景瓦片数据。

        三维瓦片不支持Draco压缩,所以升级时,如果数据是三维瓦片,几何压缩不可选择Draco压缩。

        参数:
        inputConnection - 输入数据库的连接信息。
        outputConnection - 输出数据库的连接信息。
        params - S3M版本升级的参数设置。
        返回:
        返回true表示存入MongoDB内的三维瓦片升级成功,在输出目录下生成升级后的瓦片数据;返回false表示存入MongoDB内的三维瓦片升级失败。
        从以下版本开始:
        11.2.0。
      • getUpdateObjectsInfoArray

        public ArrayList<UpdateObjectsInfo> getUpdateObjectsInfoArray()
        获取模型局部更新的ID值集合。
        返回:
        模型局部更新的ID值集合
      • setUpdateObjectsInfoArray

        public void setUpdateObjectsInfoArray(ArrayList<UpdateObjectsInfo> updateObjectsInfos)
        设置模型局部更新的ID值集合。
        参数:
        updateObjectsInfos - 模型局部更新的ID值集合
      • rebuildS3MTiles

        public static boolean rebuildS3MTiles(String scpFilePath,
                                              String associateMaterialFile,
                                              String outputPath,
                                              String cacheName)
        S3M缓存重切片。

        将配置文件中存有材质信息的S3M缓存重新切片,便于将UE美化后导出的材质写到S3M切片中。

        参数:
        scpFilePath - 原始S3M缓存scp
        associateMaterialFile - 外挂的材质关联json文件路径。

        从UE中导出的是MaterialPackages文件夹,文件夹里包含了LayerInfo.json索引文件和其他带有基色参数的json文件及纹理图片。

        outputPath - 重新切片后的输出路径
        cacheName - 重新切片后的缓存名称
        返回:
        一个bool值,true表示S3M缓存重新切片成功,false表示S3M缓存重切片失败。
      • getDatasetSettingArray

        public ArrayList<DatasetSetting> getDatasetSettingArray()
        获取批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。
        返回:
        批量生成模型缓存数据集参数设置
      • setDatasetSettingArray

        public void setDatasetSettingArray(ArrayList<DatasetSetting> datasetSettings)
        设置批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。
        参数:
        datasetSettings - 批量生成模型缓存数据集参数设置
      • setIsDisposable

        public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
                                           boolean disposable)

Copyright © 2021–2024 SuperMap. All rights reserved.