com.supermap.data
类 GeoParticle

java.lang.Object
  继承者 com.supermap.data.Geometry
      继承者 com.supermap.data.Geometry3D
          继承者 com.supermap.data.GeoParticle

public class GeoParticle
extends Geometry3D

三维粒子几何对象类。

该类主要用于构造三维粒子几何对象,返回或设置三维粒子几何对象的资源文件路径、粒子效果类型及其持有的粒子系统对象等。

SuperMap Realspace 产品对传统的粒子系统进行了调整,每个三维粒子几何对象均由一个或若干粒子系统对象的共同作用来表现,三维粒子几何对象的结构如下图所示:

从上图可知,三维粒子几何对象中包含若干粒子系统对象,每个粒子系统对象均包含:一个或多个粒子发射器和粒子影响器,其中粒子发射器用于控制发射出来粒子的速度、方向等;粒子影响器则按照一定规则对粒子的路径和生命周期进行影响,使粒子效果更为真实。

注意:该类的对象调用 getGeoModel() 方法无效,即返回值为null。


构造方法摘要
GeoParticle()
          构造一个新的 GeoParticle 对象。
GeoParticle(GeoParticle geoParticle)
          根据给定的 GeoParticle 对象构造一个与其完全相同的新对象。
GeoParticle(ParticleType type, Geometry geometry)
          根据指定的参数来构造一个 GeoParticle 的新对象。
GeoParticle(java.lang.String filename, Geometry geometry)
          根据指定的参数来构造一个 GeoParticle 的新对象。
 
方法摘要
 GeoParticle clone()
          返回当前 GeoParticle 对象的一个拷贝。
 void dispose()
          释放该对象所占用的资源。
 GeoModel getGeoModel(int slices, int stacks)
          该类不支持该方法。
 java.lang.String getParticleFilePath()
          返回粒子效果资源文件的路径。
 ParticleSystem[] getParticleSystems()
          返回三维粒子几何对象所持有的 ParticleSystem 对象数组。
 ParticleType getParticleType()
          返回粒子效果类型。
 Point3D getPosition()
          该类不支持该方法。
 double getRotationX()
          该类不支持该方法。
 double getRotationY()
          该类不支持该方法。
 double getRotationZ()
          该类不支持该方法。
 double getScaleX()
          该类不支持该方法。
 double getScaleY()
          该类不支持该方法。
 double getScaleZ()
          该类不支持该方法。
 GeoStyle getStyle()
          该类不支持该方法。
 double getVolume()
          该类不支持该方法。
 boolean hitTest(Point2D point, double tolerance)
          该类不支持该方法。
 boolean isValid()
          用于判定该 GeoParticle 对象是否有效。
 boolean makeWithGeometry(Geometry geometry)
          设置与三维粒子几何对象关联的几何对象,使用默认构造函数后,调用该方法来指定几何对象。
 Geometry mirror(Point2D startPoint, Point2D endPoint)
          该类不支持该方法。
 void resize(Rectangle2D bounds)
          该类不支持该方法。
 void rotate(Point2D basePoint, double angle)
          该类不支持该方法。
 void setParticleFilePath(java.lang.String filename)
          设置粒子效果资源文件的路径。
 void setParticleType(ParticleType type)
          设置粒子效果类型。
 void setPosition(Point3D point3D)
          该类不支持该方法。
 void setRotationX(double value)
          该类不支持该方法。
 void setRotationY(double value)
          该类不支持该方法。
 void setRotationZ(double value)
          该类不支持该方法。
 void setScaleX(double value)
          该类不支持该方法。
 void setScaleY(double value)
          该类不支持该方法。
 void setScaleZ(double value)
          该类不支持该方法。
 void setStyle(GeoStyle value)
          该类不支持该方法。
 
从类 com.supermap.data.Geometry3D 继承的方法
convertToGeoModel3D, convertToGeoModel3D, getBoundingBox, getInnerPoint3D, getStyle3D, offset, setStyle3D
 
从类 com.supermap.data.Geometry 继承的方法
addCustomGeometryCreatedListener, fromXML, getBounds, getID, getInnerPoint, getType, getVariantID, isEmpty, offset, removeCustomGeometryCreatedListener, setEmpty, setID, toXML
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

GeoParticle

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


GeoParticle

public GeoParticle(GeoParticle geoParticle)
根据给定的 GeoParticle 对象构造一个与其完全相同的新对象。

参数:
geoParticle - 指定的 GeoParticle 对象。

GeoParticle

public GeoParticle(java.lang.String filename,
                   Geometry geometry)
根据指定的参数来构造一个 GeoParticle 的新对象。

参数:
filename - 指定的粒子资源文件的全路径。
geometry - 指定的与三维粒子几何对象关联的几何对象。

GeoParticle

public GeoParticle(ParticleType type,
                   Geometry geometry)
根据指定的参数来构造一个 GeoParticle 的新对象。

参数:
type - 指定的粒子效果类型。
geometry - 指定的与三维粒子几何对象关联的几何对象。
方法详细信息

setParticleType

public void setParticleType(ParticleType type)
设置粒子效果类型。

调用此方法后,除 ParticleSystem.setLocalCenterPos() 方法外,GeoParticle 持有的 ParticleSystem 对象(GeoParticle.getParticleSystems())的其他方法的设置均将失效,改变为对应粒子效果类型的 ParticleSystem 的默认设置值,关于不同粒子效果类型的默认值可参见 ParticleType 类。

参数:
type - 指定的粒子效果类型。

getParticleType

public ParticleType getParticleType()
返回粒子效果类型。

返回:
粒子效果类型。

setParticleFilePath

public void setParticleFilePath(java.lang.String filename)
设置粒子效果资源文件的路径。

系统为各种粒子效果类型(ParticleType)均提供了默认的参数设置并保存为 par 文件,最后存储在资源文件中。各种效果类型的具体参数默认值请参考 ParticleType 类。

参数:
filename - 粒子效果资源文件的路径。

getParticleFilePath

public java.lang.String getParticleFilePath()
返回粒子效果资源文件的路径。

系统为各种粒子效果类型(ParticleType)均提供了默认的参数设置并保存为 par 文件,最后存储在资源文件中。各种效果类型的具体参数默认值请参考 ParticleType 类。

返回:
粒子效果资源文件的路径。

clone

public GeoParticle clone()
返回当前 GeoParticle 对象的一个拷贝。

覆盖:
java.lang.Object 中的 clone
返回:
通过克隆操作得到的 GeoParticle 对象。

makeWithGeometry

public boolean makeWithGeometry(Geometry geometry)
设置与三维粒子几何对象关联的几何对象,使用默认构造函数后,调用该方法来指定几何对象。

参数:
geometry - 指定的几何对象。该几何对象用于指定三维粒子几何对象的位置或者区域。
返回:
一个布尔值,设置成功返回 true,否则返回 false。

dispose

public void dispose()
释放该对象所占用的资源。当调用该方法之后,此对象不再可用。

覆盖:
Geometry 中的 dispose

getParticleSystems

public ParticleSystem[] getParticleSystems()
返回三维粒子几何对象所持有的 ParticleSystem 对象数组。

返回:
三维粒子几何对象所持有的 ParticleSystem 对象数组。

isValid

public boolean isValid()
用于判定该 GeoParticle 对象是否有效。

判断 GeoParticle 对象是否有效的条件如下:

1、GeoParticle 对象必须存在与之关联的 Geometry 对象,可通过 GeoParticle(String, Geometry)、GeoParticle(ParticleType type, Geometry geometry) 构造或 makeWithGeometry() 方法设置来实现;

2、若 getParticleType() 方法的返回值为 ParticleType.RAIN 或者 ParticleType.SNOW,则要求该 GeoParticle 对象关联的 Geometry 对象必须为 GeoRegion 或 GeoRegion3D 类型;

3、GeoParticle 对象必须指定了粒子效果类型(ParticleType),可通过 GeoParticle(ParticleType type, Geometry geometry) 构造或 setParticleType() 方法设置来实现。

返回:
一个布尔值,表示该 GeoParticle 对象是否有效,true 表示有效,false 表示无效。

getStyle

public GeoStyle getStyle()
该类不支持该方法。

覆盖:
Geometry3D 中的 getStyle
返回:
几何对象的风格。

setStyle

public void setStyle(GeoStyle value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setStyle
参数:
value - 用来设置几何对象风格的 GeoStyle 对象。
另请参见:
Geometry.offset(double, double)

hitTest

public boolean hitTest(Point2D point,
                       double tolerance)
该类不支持该方法。

覆盖:
Geometry3D 中的 hitTest
参数:
point - 测试点。
tolerance - 容限值,单位与数据集的单位相同。
返回:
测试结果,点中了该几何对象返回 true;否则返回 false。
另请参见:
Point2D

mirror

public Geometry mirror(Point2D startPoint,
                       Point2D endPoint)
该类不支持该方法。

覆盖:
Geometry3D 中的 mirror
参数:
startPoint - 线段的起点。
endPoint - 线段的终点。
返回:
该几何对象关于指定对称的几何对象。
另请参见:
Geometry.offset(double,double)

resize

public void resize(Rectangle2D bounds)
该类不支持该方法。

覆盖:
Geometry3D 中的 resize
参数:
bounds - 调整大小后几何对象的范围。

rotate

public void rotate(Point2D basePoint,
                   double angle)
该类不支持该方法。

覆盖:
Geometry3D 中的 rotate
参数:
basePoint - 旋转的基点。
angle - 旋转的角度,单位为度。

getGeoModel

public GeoModel getGeoModel(int slices,
                            int stacks)
该类不支持该方法。

覆盖:
Geometry3D 中的 getGeoModel
参数:
slices - 横向细分数。
stacks - 纵向细分数。
返回:
三维模型几何对象。

getPosition

public Point3D getPosition()
该类不支持该方法。

覆盖:
Geometry3D 中的 getPosition
返回:
三维几何对象的位置。

setPosition

public void setPosition(Point3D point3D)
该类不支持该方法。

覆盖:
Geometry3D 中的 setPosition
参数:
point3D - 三维几何对象的位置。

getRotationX

public double getRotationX()
该类不支持该方法。

覆盖:
Geometry3D 中的 getRotationX
返回:
三维几何对象沿 X 轴方向的旋转角度。单位为度。

setRotationX

public void setRotationX(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setRotationX
参数:
value - 三维几何对象沿 X 轴方向的旋转角度。单位为度。

getRotationY

public double getRotationY()
该类不支持该方法。

覆盖:
Geometry3D 中的 getRotationY
返回:
三维几何对象沿 Y 轴方向的旋转角度。单位为度。

setRotationY

public void setRotationY(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setRotationY
参数:
value - 三维几何对象沿 Y 轴方向的旋转角度。单位为度。

getRotationZ

public double getRotationZ()
该类不支持该方法。

覆盖:
Geometry3D 中的 getRotationZ
返回:
三维几何对象沿 Z 轴方向的旋转角度。单位为度。

setRotationZ

public void setRotationZ(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setRotationZ
参数:
value - 三维几何对象沿 Z 轴方向的旋转角度。单位为度。

getScaleX

public double getScaleX()
该类不支持该方法。

覆盖:
Geometry3D 中的 getScaleX
返回:
三维几何对象沿 X 轴方向的缩放比例。

setScaleX

public void setScaleX(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setScaleX
参数:
value - 三维几何对象沿 X 轴方向的缩放比例。

getScaleY

public double getScaleY()
该类不支持该方法。

覆盖:
Geometry3D 中的 getScaleY
返回:
三维几何对象沿 Y 轴方向的缩放比例。

setScaleY

public void setScaleY(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setScaleY
参数:
value - 三维几何对象沿 Y 轴方向的缩放比例。

getScaleZ

public double getScaleZ()
该类不支持该方法。

覆盖:
Geometry3D 中的 getScaleZ
返回:
三维几何对象沿 Z 轴方向的缩放比例。

setScaleZ

public void setScaleZ(double value)
该类不支持该方法。

覆盖:
Geometry3D 中的 setScaleZ
参数:
value - 三维几何对象沿 Z 轴方向的缩放比例。

getVolume

public double getVolume()
该类不支持该方法。

覆盖:
Geometry3D 中的 getVolume
返回:
三维几何对象的体积。单位为立方米。