示例#1
0
        void RegisterSelf()
        {
            if (!m_hasEverBeenRegistered && Api.Instance != null)
            {
                var positionerOptions = new Positioners.PositionerOptions()
                                        .LatitudeDegrees(InitialLatitude)
                                        .LongitudeDegrees(InitialLongitude);

                if (ElevationMode == ElevationMode.HeightAboveSeaLevel)
                {
                    positionerOptions = positionerOptions.ElevationAboveSeaLevel(InitialElevation);
                }
                else
                {
                    positionerOptions = positionerOptions.ElevationAboveGround(InitialElevation);
                }

                if (IndoorMapID != "")
                {
                    positionerOptions = positionerOptions.IndoorMapWithFloorId(IndoorMapID, IndoorMapFloorId);
                }

                m_positioner = Api.Instance.PositionerApi.CreatePositioner(positionerOptions);

                m_positioner.OnTransformedPointChanged += UpdateECEFLocation;

                Api.Instance.GeographicApi.RegisterGeographicTransform(this);
                m_hasEverBeenRegistered = true;
            }
        }
示例#2
0
        void UnregisterSelf()
        {
            if (m_hasEverBeenRegistered && Api.Instance != null)
            {
                if (m_positioner != null)
                {
                    m_positioner.OnTransformedPointChanged -= UpdateECEFLocation;
                    m_positioner.Discard();
                    m_positioner = null;
                }

                Api.Instance.GeographicApi.UnregisterGeographicTransform(this);

                m_hasEverBeenRegistered = false;
            }
        }
 public bool IsPositionerBehindGlobeHorizon(Positioner positioner)
 {
     return(NativePositionerApi_IsBehindGlobeHorizon(NativePluginRunner.API, positioner.Id));
 }
 public bool IsTransformedPointDefined(Positioner positioner)
 {
     return(NativePositionerApi_IsTransformedPointDefined(NativePluginRunner.API, positioner.Id));
 }