/*
* @Description: In User Settings Edit
* @author: lidafeng
* @Date: 2019-09-20 17:53:05
* @LastEditTime: 2019-09-24 13:59:11
* @LastEditors: mayuanye
*/
/**
* @content 实现对三维坐标点序列的相关操作功能组件
* @author fjl 2019-6-14 下午2:52:36
*/
import { NativeModules } from 'react-native';
import Dot3D from './Dot3D.js';
let DS3D = NativeModules.JSDots3D;
/**
* @class Dots3D
* @description 实现对三维坐标点的类型定义
*/
export default class Dots3D {
/**
* 构造一个新的Dots3D对象
* @memberof Dots3D
* @returns {Promise<Dots3D>}
*/
async createObj() {
try {
let { Dots3DId } = await DS3D.createObj();
let dots3D = new Dots3D();
dots3D._MGDots3DId = Dots3DId;
return dots3D;
} catch (e) {
console.error(e);
}
}
/**
* 返回数目
* @memberof Dots3D
* @return 数目
*/
async size() {
try {
return await DS3D.size(this._MGDots3DId);
} catch (e) {
console.error(e);
}
}
/**
* 添加一个点
* @memberof Dots3D
* @param {object:Dot3D} dot3D 待添加的点对象
* @return 新添加点的索引,小于0失败
*/
async append(dot3D) {
try {
return await DS3D.append(this._MGDots3DId, dot3D._MGDot3DId);
} catch (e) {
console.error(e);
}
}
/**
* 将另一个Dots3D的点添加到尾端
* @memberof Dots3D
* @param {object:Dots3D}dots3D 待添加的点序列对象
* @return 大于0成功,否则失败
*/
async appendDots3D(dots3D) {
try {
let x = await DS3D.appendDots3D(this._MGDots3DId, dots3D._MGDots3DId);
return x;
} catch (e) {
console.error(e);
}
}
/**
* 删除索引处的点
* @memberof Dots3D
* @param index 待删除的点索引
* @return 大于0成功,否则失败
*/
async remove(index) {
try {
return await DS3D.remove(this._MGDots3DId, index);
} catch (e) {
console.error(e);
}
}
/**
* 清空
* @memberof Dots3D
* @return 大于0成功,否则失败
*/
async clear() {
try {
return await DS3D.clear(this._MGDots3DId);
} catch (e) {
console.error(e);
}
}
/**
* 返回索引处的点
* @memberof Dots3D
* @param index 待查找的索引号
* @return 索引处的点
*/
async get(index) {
try {
let { Dot3DId } = await DS3D.get(this._MGDots3DId, index);
var dot3D = new Dot3D();
dot3D._MGDot3DId = Dot3DId;
return dot3D;
} catch (e) {
console.error(e);
}
}
/**
* 拷贝坐标点序列
* @memberof Dots3D
* @return 拷贝出的坐标点序列
*/
async clone() {
try {
let { dots3DId } = await DS3D.clone(this._MGDots3DId);
var dots3D = new Dots3D();
dots3D._MGDot3DId = dots3DId;
return dots3D;
} catch (e) {
console.error(e);
}
}
}