/// <summary> /// 构造函数 /// </summary> /// <param name="center">球体中心点</param> /// <param name="radius">球体半径</param> /// <returns></returns> public Sphere(EarthView.World.Spatial.Math.Vector3 center, double radius) : base(CreatedWhenConstruct.CWC_NotToCreate) { NameValuePairList list = new NameValuePairList(); BasePtr valuecenter = new BasePtr(center); list.Add("center", valuecenter.PtrVal); BasePtr valueradius = new BasePtr(radius); list.Add("radius", valueradius.PtrVal); Create("CSphere", list); RegisterCallBack(); this.needDispose = true; GlobalTraceInfoMap.Put(this); }
/// <summary> /// 四元数转x,y,z三个轴旋转角度 /// </summary> /// <param name="quter">x</param> /// <returns></returns> public static EarthView.World.Spatial.Math.Vector3 QuaterToAngle(EarthView.World.Spatial.Math.Quaternion quter) { IntPtr __ptr = EarthView_World_Spatial3D_Dataset_CModelDatasetUtility_QuaterToAngle_CVector3_CQuaternion(object.Equals(quter, null) ? IntPtr.Zero : quter.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.Vector3 csObj = new EarthView.World.Spatial.Math.Vector3(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CVector3"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.Vector3; csObj.BindNativeObject(__ptr, "CVector3"); } return(csObj); }
/// <summary> /// 获取 /// </summary> /// <param name=""></param> /// <returns>返回</returns> /// <memo></memo> public EarthView.World.Spatial.Math.Vector3 GetCurrentPoint() { IntPtr __ptr = EarthView_World_Spatial3D_Analysis_CAnalysis3DMeasureAzimuthParam_getCurrentPoint_CVector3(this.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.Vector3 csObj = new EarthView.World.Spatial.Math.Vector3(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CVector3"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.Vector3; csObj.BindNativeObject(__ptr, "CVector3"); } return(csObj); }
/// <summary> /// 获取风速 /// </summary> /// <returns>风速向量</returns> public EarthView.World.Spatial.Math.Vector3 GetWindSpeed() { IntPtr __ptr = EarthView_World_Spatial_Effect3D_CWind_getWindSpeed_CVector3(this.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.Vector3 csObj = new EarthView.World.Spatial.Math.Vector3(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CVector3"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.Vector3; csObj.BindNativeObject(__ptr, "CVector3"); } return(csObj); }
/// <summary> /// 插值生成曲线上某点坐标 /// </summary> /// <param name="fromIndex">控制点索引</param> /// <param name="t">参变量t</param> /// <returns>点坐标</returns> public EarthView.World.Spatial.Math.Vector3 Interpolate(uint fromIndex, double t) { IntPtr __ptr = EarthView_World_Graphic_CSimpleSpline_interpolate_CVector3_ev_uint32_Real(this.NativeObject, fromIndex, t); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.Vector3 csObj = new EarthView.World.Spatial.Math.Vector3(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CVector3"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.Vector3; csObj.BindNativeObject(__ptr, "CVector3"); } return(csObj); }
/// <summary> /// 获得曲线中某控制点的详细信息 /// </summary> /// <param name="index">控制点索引</param> /// <returns>三维坐标点</returns> public EarthView.World.Spatial.Math.Vector3 GetPoint(ushort index) { IntPtr __ptr = EarthView_World_Graphic_CSimpleSpline_getPoint_CVector3_ev_uint16(this.NativeObject, index); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial.Math.Vector3 csObj = new EarthView.World.Spatial.Math.Vector3(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CVector3"); csObj.Delegate = true; IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial.Math.Vector3; csObj.BindNativeObject(__ptr, "CVector3"); csObj.Delegate = true; } return(csObj); }
/// <summary> /// 判断是否包含某点 /// </summary> /// <param name="v">空间点坐标</param> /// <returns>包含返回true,否则false</returns> public bool Intersects(EarthView.World.Spatial.Math.Vector3 v) { byte ret = EarthView_World_Spatial_Math_CSphere_intersects_ev_bool_CVector3(this.NativeObject, object.Equals(v, null) ? IntPtr.Zero : v.NativeObject); return(Convert.ToBoolean(ret)); }
/// <summary> /// 设置球心坐标 /// </summary> /// <param name="center">球心坐标</param> /// <returns></returns> public void SetCenter(EarthView.World.Spatial.Math.Vector3 center) { EarthView_World_Spatial_Math_CSphere_setCenter_void_CVector3(this.NativeObject, object.Equals(center, null) ? IntPtr.Zero : center.NativeObject); }
/// <summary> /// 计算两点之间的贴地距离 /// </summary> /// <param name="num">插入点数目</param> /// <param name="p0">输入点,地理坐标(经度、纬度、高程或0)</param> /// <param name="p1">输入点,地理坐标(经度、纬度、高程或0)</param> /// <param name="vertices">插值后的点列表</param> /// <returns>贴地距离</returns> public double CalcuClampedDistance(int num, EarthView.World.Spatial.Math.Vector3 p0, EarthView.World.Spatial.Math.Vector3 p1, ref EarthView.World.Spatial.Math.VertexList vertices) { double ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureLength_calcuClampedDistance_ev_real64_ev_int32_CVector3_CVector3_VertexList(this.NativeObject, num, object.Equals(p0, null) ? IntPtr.Zero : p0.NativeObject, object.Equals(p1, null) ? IntPtr.Zero : p1.NativeObject, object.Equals(vertices, null) ? IntPtr.Zero : vertices.NativeObject); return(ret); }
/// <summary> /// 添加单点 /// </summary> /// <param name="ptName">单点名称</param> /// <param name="worldPos">单点世界坐标</param> /// <param name="heading">偏北角(以局部坐标系下Z轴代表地球表面正北方向</param> /// <param name="iconPath">图标文件路径</param> /// <param name="size">单点像素大小</param> /// <param name="faceToCamera">是否始终朝向相机显示</param> /// <param name="showAsPixel">是否以像素模式显示,显示大小不跟随镜头发生变化</param> public void AddPoint3d(string ptName, EarthView.World.Spatial.Math.Vector3 worldPos, EarthView.World.Spatial.Math.Degree heading, string iconPath, float size, bool faceToCamera, bool showAsPixel) { EarthView_IndustryEngine_IndustryGraphic_CMultiTexturePoint3d_addPoint3d_void_EVString_CVector3_CDegree_EVString_float_bool_bool(this.NativeObject, ptName, object.Equals(worldPos, null) ? IntPtr.Zero : worldPos.NativeObject, object.Equals(heading, null) ? IntPtr.Zero : heading.NativeObject, iconPath, ref size, ref faceToCamera, ref showAsPixel); }
/// <summary> ///创建雷达波 /// </summary> /// <param name="texturePath">纹理路径及名称</param> /// <param name="topPos">顶面点位置</param> /// <param name="bottomPos">底面点位置</param> /// <param name="raidus">半径</param> public void AddRadarWave(string texturePath, EarthView.World.Spatial.Math.Vector3 topPos, EarthView.World.Spatial.Math.Vector3 bottomPos, double raidus) { EarthView_IndustryEngine_MilitaryEngine_RadarLibrary_CRadarWave_addRadarWave_void_EVString_CVector3_CVector3_double(this.NativeObject, texturePath, object.Equals(topPos, null) ? IntPtr.Zero : topPos.NativeObject, object.Equals(bottomPos, null) ? IntPtr.Zero : bottomPos.NativeObject, raidus); }
public static double Screensizefix_scale(EarthView.World.Spatial.Math.Vector3 nodePos, EarthView.World.Graphic.Camera cam, ref double node2camDis) { double ret = EarthView_World_Graphic_CUtilityCalculator_screensizefix_scale_Real_CVector3_CCamera_Real(object.Equals(nodePos, null) ? IntPtr.Zero : nodePos.NativeObject, object.Equals(cam, null) ? IntPtr.Zero : cam.NativeObject, ref node2camDis); return(ret); }
/// <summary> ///初始化 /// </summary> /// <param name="ref_parentNode">要观察的节点</param> /// <param name="localCenter">模型的几何中心点的坐标</param> /// <param name="controlPointMap">控制点列表</param> public bool Init(EarthView.World.Graphic.SceneNode ref_parentNode, EarthView.World.Spatial.Math.Vector3 localCenter, EarthView.World.Spatial3D.ControlPointMap controlPointMap) { byte ret = EarthView_World_Spatial3D_Controls_CCameraAnimationHandler_init_ev_bool_CSceneNode_CVector3_CControlPointMap(this.NativeObject, object.Equals(ref_parentNode, null) ? IntPtr.Zero : ref_parentNode.NativeObject, object.Equals(localCenter, null) ? IntPtr.Zero : localCenter.NativeObject, object.Equals(controlPointMap, null) ? IntPtr.Zero : controlPointMap.NativeObject); return(Convert.ToBoolean(ret)); }
/// <summary> /// 从wgs84转到投影坐标系下 /// </summary> /// <param name="spatialRef">数据投影</param> /// <param name="resEnvelope">原始的点</param> /// <param name="desEnvelope">投影后的点</param> /// <returns></returns> public static void ConvertWgs84ToProjCoordinateData(EarthView.World.Spatial.Geometry.Ispatialreference spatialRef, EarthView.World.Spatial.Math.Vector3 resVector, ref EarthView.World.Spatial.Math.Vector3 desVector) { EarthView_World_Spatial3D_Dataset_CModelDatasetUtility_convertWgs84ToProjCoordinateData_void_ISpatialReference_CVector3_CVector3(object.Equals(spatialRef, null) ? IntPtr.Zero : spatialRef.NativeObject, object.Equals(resVector, null) ? IntPtr.Zero : resVector.NativeObject, object.Equals(desVector, null) ? IntPtr.Zero : desVector.NativeObject); }
public void Update(EarthView.World.Spatial.Math.Vector3 pPosition, double pVelocity) { EarthView_World_Spatial3D_RotorWash_Update_void_CVector3_double(this.NativeObject, object.Equals(pPosition, null) ? IntPtr.Zero : pPosition.NativeObject, pVelocity); }
/// <summary> /// 在曲线末端增加控制点 /// </summary> /// <param name="p">控制点对象</param> /// <returns></returns> public void AddPoint(EarthView.World.Spatial.Math.Vector3 p) { EarthView_World_Graphic_CSimpleSpline_addPoint_void_CVector3(this.NativeObject, object.Equals(p, null) ? IntPtr.Zero : p.NativeObject); }
/// <summary> /// 更新曲线中某点坐标 /// </summary> /// <param name="index">控制点索引</param> /// <param name="value">控制点坐标</param> /// <returns></returns> public void UpdatePoint(ushort index, EarthView.World.Spatial.Math.Vector3 value) { EarthView_World_Graphic_CSimpleSpline_updatePoint_void_ev_uint16_CVector3(this.NativeObject, index, object.Equals(value, null) ? IntPtr.Zero : value.NativeObject); }
/// <summary> /// 设置 /// </summary> /// <param name="altitude"></param> /// <returns></returns> /// <memo></memo> public void SetSelectedPoint(ref EarthView.World.Spatial.Math.Vector3 cen) { EarthView_World_Spatial3D_Analysis_CAnalysis3DVolumeParam_setSelectedPoint_void_CVector3(this.NativeObject, object.Equals(cen, null) ? IntPtr.Zero : cen.NativeObject); }
/// <summary> /// 设置风速向量 /// </summary> /// <param name = "speed">风速向量</param> /// <returns></returns> public void SetWindSpeed(EarthView.World.Spatial.Math.Vector3 speed) { EarthView_World_Spatial_Effect3D_CWind_setWindSpeed_void_CVector3(this.NativeObject, object.Equals(speed, null) ? IntPtr.Zero : speed.NativeObject); }
/// <summary> ///动态更新雷达波 /// </summary> /// <param name="radarWaveName">雷达波名称</param> /// <param name="radarWaveMatName">材质名称</param> /// <param name="flag">隐藏还是更新雷达波(true:更新,false:隐藏)</param> /// <param name="topPos">顶面点位置</param> /// <param name="bottomPos">底面点位置</param> /// <param name="raidus">半径</param> public void UpdateRadarWave(string radarWaveName, string radarWaveMatName, bool flag, EarthView.World.Spatial.Math.Vector3 topPos, EarthView.World.Spatial.Math.Vector3 bottomPos, double raidus) { EarthView_IndustryEngine_MilitaryEngine_RadarLibrary_CRadarWave_updateRadarWave_void_EVString_EVString_bool_CVector3_CVector3_double(this.NativeObject, radarWaveName, radarWaveMatName, Convert.ToByte(flag), object.Equals(topPos, null) ? IntPtr.Zero : topPos.NativeObject, object.Equals(bottomPos, null) ? IntPtr.Zero : bottomPos.NativeObject, raidus); }
/// <summary> /// 设置淹没源 /// </summary> /// <param name="altitude">淹没源</param> /// <returns></returns> /// <memo></memo> public void SetCenter(ref EarthView.World.Spatial.Math.Vector3 cen) { EarthView_World_Spatial3D_Analysis_CAnalysis3DRegionFloodParam_setCenter_void_CVector3(this.NativeObject, object.Equals(cen, null) ? IntPtr.Zero : cen.NativeObject); }
/// <summary> /// 添加一个场景节点 /// </summary> /// <param name=""></param> /// <returns></returns> /// <memo></memo> public bool AddNode(string modelfilePath, float lat, float lon, float alt, EarthView.World.Spatial.Math.Vector3 scale, float rotateX, float rotateY, float rotateZ) { byte ret = EarthView_World_Spatial3D_DataExchange_CModelSceneSerialzier_addNode_ev_bool_EVString_ev_real32_ev_real32_ev_real32_CVector3_ev_real32_ev_real32_ev_real32(this.NativeObject, modelfilePath, lat, lon, alt, object.Equals(scale, null) ? IntPtr.Zero : scale.NativeObject, rotateX, rotateY, rotateZ); return(Convert.ToBoolean(ret)); }
/// <summary> /// 计算两点之间的投影距离 /// </summary> /// <param name="p0">输入点,地理坐标(经度、纬度、高程或0)</param> /// <param name="p1">输入点,地理坐标(经度、纬度、高程或0)</param> /// <returns>投影距离</returns> public double CalcuProjectDistance(EarthView.World.Spatial.Math.Vector3 p0, EarthView.World.Spatial.Math.Vector3 p1) { double ret = EarthView_World_Spatial3D_Analysis_CMath3DMeasureLength_calcuProjectDistance_ev_real64_CVector3_CVector3(this.NativeObject, object.Equals(p0, null) ? IntPtr.Zero : p0.NativeObject, object.Equals(p1, null) ? IntPtr.Zero : p1.NativeObject); return(ret); }
/// <summary> /// 设置 /// </summary> /// <param name="altitude"></param> /// <returns></returns> /// <memo></memo> public void SetCurrentPoint(ref EarthView.World.Spatial.Math.Vector3 cen) { EarthView_World_Spatial3D_Analysis_CAnalysis3DMeasureAzimuthParam_setCurrentPoint_void_CVector3(this.NativeObject, object.Equals(cen, null) ? IntPtr.Zero : cen.NativeObject); }
/// <summary> /// 根据名称设置状态 /// </summary> /// <param name="ptName">单点名称</param> /// <param name="worldPos">单点世界坐标</param> /// <param name="heading">单点偏北角</param> public void SetStatus(string ptName, EarthView.World.Spatial.Math.Vector3 worldPos, EarthView.World.Spatial.Math.Degree heading) { EarthView_IndustryEngine_IndustryGraphic_CMultiTexturePoint3d_setStatus_void_EVString_CVector3_CDegree(this.NativeObject, ptName, object.Equals(worldPos, null) ? IntPtr.Zero : worldPos.NativeObject, object.Equals(heading, null) ? IntPtr.Zero : heading.NativeObject); }