# Source: CrossData.js

    /**
     * @content 交叉结构功能组件
     * @author  2019-09-25
     */
    import { NativeModules } from 'react-native';

    let CD = NativeModules.JSCrossData;

    import Dot from './Dot.js';

    /**
     * @class CrossData
     * @description 交叉结构
     */
    export default class CrossData {
      /**
       * 构造一个新的 CrossData 对象。
       * @memberOf CrossData
       * @returns {Promise.<CrossData>}
       */
      async createObj() {
        try {
          var { CrossDataId } = await CD.createObj();
          var crossData = new CrossData();
          crossData._MGCrossDataId = CrossDataId;
          return crossData;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 交点坐标
       * @memberof CrossData
       * @returns {Promise.<Dot>} 交点坐标
       */
      async getCross() {
        try {
          let { point2DId } = await CD.getCross(this._MGCrossDataId);
          var dot = new Dot();
          dot._MGDotId = point2DId;
          return dot;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 线A编号
       * @memberof CrossData
       * @returns {Promise.<int>} 线A编号
       */
      async getDoteA() {
        try {
          return await CD.getDoteA(this._MGCrossDataId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 线B编号
       * @memberof CrossData
       * @returns {Promise.<int>}线B编号
       */
      async getDoteB() {
        try {
          return await CD.getDoteB(this._MGCrossDataId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 前一个点的坐标
       * @memberof CrossData
       * @returns {Promise.<Dot>} 前一个点的坐标
       */
      async getDotAxy() {
        try {
          let { point2DId } = await CD.getDotAxy(this._MGCrossDataId);
          var dot = new Dot();
          dot._MGDotId = point2DId;
          return dot;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 前一个点的坐标
       * @memberof CrossData
       * @returns {Promise.<Dot>} 前一个点的坐标
       */
      async getDotBxy() {
        try {
          let { point2DId } = await CD.getDotBxy(this._MGCrossDataId);
          var dot = new Dot();
          dot._MGDotId = point2DId;
          return dot;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 交点的idx
       * @memberof CrossData
       * @returns {Promise.<int>} 交点的idx
       */
      async getlineAno() {
        try {
          return await CD.getlineAno(this._MGCrossDataId);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 交点在被插入时是否被访问
       * @memberof CrossData
       * @returns {Promise.<int>} 交点在被插入时是否被访问
       */
      async getlineBno() {
        try {
          return await CD.getlineBno(this._MGCrossDataId);
        } catch (e) {
          console.error(e);
        }
      }
    }