/// <summary>
        /// Gets the configuration options for this plug-in.
        /// </summary>
        /// <param name="AttrBuilder">The helper classes used to build the options.</param>
        /// <returns>An instance of the object returned by AttrBuilder.NewScope() populated with options.</returns>
        public object GetConfig(AgAttrBuilder attrBuilder)
        {
            //If this is the first time, we need to create the options
            //which we will then cache for future use.
            if (m_options == null)
            {
                m_options = attrBuilder.NewScope();

                //Expose a Quantity option, in meters, for MinimumAltitude
                attrBuilder.AddQuantityDispatchProperty2(m_options,
                                                         "MinimumAltitude",
                                                         "MinimumAltitude",
                                                         "MinimumAltitude",
                                                         "Distance",
                                                         "Meters",
                                                         "Meters",
                                                         (int)AgEAttrAddFlags.eAddFlagNone);

                //Expose a Quantity option, in meters, for MaximumAltitude
                attrBuilder.AddQuantityDispatchProperty2(m_options,
                                                         "MaximumAltitude",
                                                         "MaximumAltitude",
                                                         "MaximumAltitude",
                                                         "Distance",
                                                         "Meters",
                                                         "Meters",
                                                         (int)AgEAttrAddFlags.eAddFlagNone);
            }

            return(m_options);
        }
        public object GetPluginConfig(AgAttrBuilder aab)
        {
            try
            {
                Debug.WriteLine("--> Entered", m_Name + ".GetPluginConfig()");

                if (m_Scope == null)
                {
                    m_Scope = aab.NewScope();

                    // ==============================
                    //  Model specific attributes
                    // ==============================

                    aab.AddQuantityDispatchProperty2(m_Scope, "SRPArea", "SRP Area", "SRPArea", "Area", "m^2", "m^2", (int)AgEAttrAddFlags.eAddFlagNone);
                    aab.AddChoicesDispatchProperty(m_Scope, "RefFrame", "Reference Frame", "RefFrame", m_refFrameNames.ToArray());

                    //===========================
                    // General Plugin attributes
                    //===========================

                    aab.AddStringDispatchProperty(m_Scope, "PluginName", "Human readable plugin name or alias", "Name", (int)AgEAttrAddFlags.eAddFlagNone);
                    aab.AddBoolDispatchProperty(m_Scope, "PluginEnabled", "If the plugin is enabled or has experienced an error", "Enabled", (int)AgEAttrAddFlags.eAddFlagNone);
                    aab.AddBoolDispatchProperty(m_Scope, "DebugMode", "Turn debug messages on or off", "DebugMode", (int)AgEAttrAddFlags.eAddFlagNone);

                    //===========================
                    // Messaging related attributes
                    //===========================
                    aab.AddIntDispatchProperty(m_Scope, "MessageInterval", "The interval at which to send messages during propagation in Debug mode", "MsgInterval", (int)AgEAttrAddFlags.eAddFlagNone);
                }
                string config;
                config = aab.ToString(this, m_Scope);
                Debug.WriteLine(m_Name + ".GetPluginConfig():");
                Debug.WriteLine("============Attr Scope==============");
                Debug.WriteLine(config);
                Debug.WriteLine("====================================");
            }
            finally
            {
                Debug.WriteLine("<-- Exited", m_Name + ".GetPluginConfig()");
            }

            return(m_Scope);
        }