RflySimSDK v3.08
RflySimSDK说明文档
载入中...
搜索中...
未找到
RflyReqObjData(int opFlag, FString objName, FString colorStr)(指定回传数据)

请求 RflySim3D 场景中的物体数据。该函数类似RflyReqVehicleData函数,它也会回传三维场景中物体的一些数据。但它一次只回传一个指定目标的数据。

参数 解释
opFlag 操作标志,用于指定返回的数据类型
objName 物体名称或相机 ID,用于指定要获取数据的目标物体或相机。对于相机数据,可以指定相机的 ID。对于物体数据,可以指定物体的名称
colorStr 颜色字符串,可选参数,用于指定数据的颜色
opFlag 说明
0 返回指定 ID 的相机(Camera)数据。
1 返回指定 ID 的飞机(Copter)数据。
2 返回指定名称的物体(Object)数据。
20 清除所有相机。
21 清除所有飞机。
22 清除所有物体。
23 清除所有飞机和物体。
24 清除所有相机、物体和飞机。
10 删除一个相机。
11 删除一个飞机。
12 删除一个物体。

当 opFlag 为 0 时,该函数会返回指定 ID(objName=seqID)的用于捕获图像的相机数据。相机数据结构如下所示:
struct CameraData {
int checksum = 0; // 校验和,常数 1234567891
int SeqID; // 相机序号
int TypeID; // 相机类型
int DataHeight; // 图像像素高度
int DataWidth; // 图像像素宽度
float CameraFOV; // 相机视场角
float PosUE[3]; // 相机的中心位置
float angEuler[3]; // 相机的欧拉角
double timestmp; // 时间戳
};

当 opFlag 为 1 时,该函数会返回指定 ID 的飞机(objName=CopterID)的数据。飞机数据结构如下所示
struct CoptReqData {
int checksum = 0; // 校验和,常数 1234567891
int CopterID; // 飞机 ID
float PosUE[3]; // 飞机的中心位置(人为三维建模时指定,姿态坐标轴,不一定在几何中心)
float angEuler[3]; // 飞机的欧拉角
float boxOrigin[3]; // 物体几何中心坐标
float BoxExtent[3]; // 物体外框长宽高的一半
double timestmp; // 时间戳
};

当 opFlag 为 2 时,该函数会返回指定 ID(objName= seqID/ ObjName[32])的物体的数据。物体数据结构如下所示:
struct ObjReqData {
int checksum = 0; // 校验和,常数 1234567891
int seqID = 0;
float PosUE[3]; // 物体的中心位置(人为三维建模时指定,姿态坐标轴,不一定在几何中心)
float angEuler[3]; // 物体的欧拉角
float boxOrigin[3]; // 物体几何中心坐标
float BoxExtent[3]; // 物体外框长宽高的一半
double timestmp; // 时间戳
char ObjName[32] = { 0 }; // 碰物体的名字
};

操作示例
当opFlag==0时,它可以根据请求创建一个相机用于捕获图像,而相机的数据可以通过该函数来获得:
RflyReqObjData 0 0 FFFFFF
当opFlag==1时,打开RflySim3D,鼠标双击地面+按下字母O+数字3,创建一个ID飞机(ID默认为1000),输入命令
RflyReqObjData 1 1000 FFFFFF
当opFlag==2时,在RflySim3D中,并不是所有物体都是Copter类的对象(例如地形、障碍、建筑等),而此接口可以用于获取这些非Copter的物体的信息。打开RflySim3D,双击地面,我们可以看到鼠标击中地面后,屏幕上输出了一些信息,其中第一个单词表示击中物体的名字,也就是说“地形的名字为Landscape_1”

然后我们使用命令
RflyReqObjData 2 Landscape_1 FFFFFF
表示我们想知道名为“Landscape_1”的对象的信息。